DAILY
5월 8일 알고리즘 연습문제
ssund
2023. 5. 9. 02:28
https://school.programmers.co.kr/learn/courses/30/lessons/181923
https://school.programmers.co.kr/learn/courses/30/lessons/181921
범위에 배열을 초기화 할 때 만들어주고 ,
정규표현식을 이용해 0, 5문자가 있는 경우만 추출한다.
function solution(l, r) {
const result = Array.from({length: r - l + 1}, (_, i)=> i + l).filter(n=>!/[^05]/.test(n));
return result.length ? result : [-1];
}
// /[^05]/ 0,5이외에 다른문자열이 있는지 확인 true가 나오면 다른문자열 있는것
https://school.programmers.co.kr/learn/courses/30/lessons/181920
https://school.programmers.co.kr/learn/courses/30/lessons/181919
나의 풀이
조건에 맞을때 까지 while문으로 반복을 해줬다.
function solution(n) {
var answer = [];
answer.push(n)
while(n !== 1) {
if(n % 2 === 0) {
n = parseInt(n / 2)
} else {
n = 3 * n + 1
}
answer.push(n)
}
return answer;
}
재귀함수를 사용한 풀이
function solution(n, arr = []) {
arr.push(n);
if (n == 1) return arr;
if (n % 2 === 0) return solution(parseInt(n / 2), arr);
return solution(3 * n + 1, arr)
}
https://school.programmers.co.kr/learn/courses/30/lessons/181918