본문 바로가기

코딩테스트

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

반응형

문제

프로그래머스

나의 풀이

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

n에서 2로 나누어 떨어지면 n/2, 아니면 n-1을 해주는 과정을
1이 될때까지 과정을 반복하고, 마지막에 1을 더해주는것으로 정답을 구했다. ( 0에서 1은 점프를 해야되니까)

다른이의 풀이

const nArr = Array.from(n.toString(2));

이와 같이 toString을 통해 2진법으로 만들고 1의 갯수를 세어도 정답이다.

반응형