📄 문제
🔍 문제 접근
💡 문제에서 1234567
과 같은 숫자로 나눈 나머지를 출력하라는 이유 = int
로 표현할 수 있는 범위를 넘어서기 때문
📝 문제 풀이
처음에 재귀함수로 풀었다가 시간 초과와 런타임 에러를 맞고, for 문으로 방법을 바꿨다.
// 문제의 재귀함수
function solution(n) {
if (0 === n) {
return 0;
}
if (1 === n || 2 === n) {
return 1;
}
return solution((n - 1) % 1234567) + solution((n - 2) % 1234567);
}
// for문을 사용한 풀이
function solution(n) {
let sum = 0;
let prev = 0;
let next = 1;
for (let i = 1; i < n; i++) {
sum = (prev + next) % 1234567;
prev = next;
next = sum;
}
return sum;
}
'코딩테스트' 카테고리의 다른 글
[프로그래머스/Javascript] 귤 고르기 (0) | 2023.09.06 |
---|---|
[프로그래머스/Javascript] 튜플 (0) | 2023.08.18 |
[프로그래머스/Javascript] 다음 큰 숫자 (0) | 2023.08.12 |
[프로그래머스/Javascript] 숫자의 표현 (0) | 2023.08.07 |
[프로그래머스/Javascript] 이진 변환 반복하기 (0) | 2023.08.06 |