[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하고 배터리 소모한다.
순간이동은 배터리가 달지 않으니 될 수있으면 계속 써주는게 좋다.
이러면 최소 배터리 사용량을 반환하기 쉽다.
요약
- 거꾸로 생각하니 쉬웠다.
- 나의 생각으로만 풀기.