프로그래머스 - 점프와 순간 이동

greenTea·2023년 5월 24일
0

코드

public class Solution {
    public int solution(int n) {
        int count=0;
        while (n>=1) {
            if (n%2 ==0)
                n/=2;
            else {
                n = (n-1)/2;
                count++;
            }
        }
        return count ;
    }
}

해설

😎가장 짧은 count를 세기 위해 앞에서 부터 세는 것이 아닌 목표 지점부터 거꾸로 세는 방식을 이용하면 된다. n이 목표지점이니 n부터 2로 나누는데 짝수인 경우에는 그대로 진행하면 되지만 홀 수인 경우에는 짝수로 맞춰주기 위해 1을 뺀다. 이 때 1을 이동하는 경우 count에 1을 더해주어야 한다. 이렇게 while문을 돌고 나면 정답이 나오게 된다.

출처 : 프로그래머스 - 점프와 순간 이동

profile
greenTea입니다.

0개의 댓글