점프와 순간이동

문제


문제 풀이

문제에서 순간이동은 (이동거리) *2 이고 점프는 이동거리 + 1이다. 그렇다면 결과값을 역추적을 하면 그 값을 찾을 수 있다. 

 

결과 N까지 도달하는 정확한 값을 만들어야 하기 때문에 N 값이 홀수라면 -1을 해주고 짝수라면 / 2 를 해주면 된다. 


나의 답안

public static int solution(int n) {
    int ans = 0;

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

    return ans;
}

'Programmers 문제풀이 > Lv.2' 카테고리의 다른 글

멀리 뛰기  (0) 2023.03.31
N개의 최소공배수  (0) 2023.03.31
예상 대진표  (0) 2023.03.31
구명보트  (0) 2023.03.31
가장 큰 수  (0) 2023.03.30