[Programmers]-점프와 순간 이동

문제

문제

코드

import java.util.*;

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

코드 설명

n에서부터 거꾸로 시작해서 홀수일경우에 -1하고 배터리 소모한다.

순간이동은 배터리가 달지 않으니 될 수있으면 계속 써주는게 좋다.

이러면 최소 배터리 사용량을 반환하기 쉽다.

요약

  • 거꾸로 생각하니 쉬웠다.
  • 나의 생각으로만 풀기.