프로그래머스

[프로그래머스] 점프와 순간 이동 (Javascript)

해랑쓰 2021. 4. 28. 10:52
728x90
반응형

0에서 n까지 가는 dp문제이다.

처음에는 재귀로 dp 돌렸는데 거리가 n을 초과하거나 비용이 더 작을 때만 진행시켜도 시간 초과났다.

 

거리가 2배인 곳으로 순간이동하는 데 비용이 없어 최대한 순간이동 시켜주는 게 좋으므로 

2의 배수라는 것을 처리해주기 위해 %연산자를 써서 n에서 시작해서 0 까지 가준다.

 

2이 배수가 아닐 때에는 순간이동해서 온게 아니므로 -1로 짝수로 이동해준다.

function solution(n)
{
    var ans = 0;

    while(n>0){
        if(n%2==0){
            n/=2;
        }else{
            n-=1;
            ans+=1;
        }
    }

    return ans;
}
728x90
반응형