DevLog:-)

[프로그래머스][Javascript]멀리뛰기 본문

알고리즘/프로그래머스

[프로그래머스][Javascript]멀리뛰기

hyeon200 2023. 8. 4. 20:14
반응형

문제

멀리뛰기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

코드

function solution(n) {
    var answer = 0;
    
    function dfs(k){
        if(k == n){answer++; return; }
        else if(k>n){return; }
        else{
        dfs(k+1);
        dfs(k+2);   
        }
    }
    dfs(1);
    dfs(2);
    return answer % 1234567;
}

시간초과

function solution(n) {
    var answer = 0;
    let list = Array(n+1).fill(0);
    list[1] = 1;
    list[2] = 2;
    for(i=3;i<=n;i++){
        list[i] =(list[i-1] + list[i-2])% 1234567; 
    }
    return list[n] ;
}

%1234567을 return 부분에만 했을 때 나중에 숫자가 커지면서 무한대가 되고 nan값이 return되어 실패의 원인이 된다.

for문을 돌리며 %1234567함으로서 이를 해결할 수 있다. 

 

다른 풀이

function jumpCase(num) {
    if(num<=2) return num;

  return jumpCase(num-1) + jumpCase(num-2)
}
//위와 같은 코드
function jumpCase(num) {
  if (num === 1) return 1
  if (num === 2) return 2
  return jumpCase(num-1) + jumpCase(num-2)
}

 

반응형