public int solution(int n) {
int amount = 0;
while (n > 0) {
if (n % 2 == 1) {
n = (n - 1) / 2;
amount++;
} else {
n = n / 2;
}
}
return amount;
}
정확히 N을 맞추어야 하고, 순간이동을 통해 2배를 하는 경우를 최대화해야 건전지 사용량을 최소화할 수 있다고 생각했다.
n이 0이 될 때까지 2로 나누어 가다가 만약 홀수가 나오면 건전지를 한 번 사용했다고 간주하고 -1을 해준 후 다시 2로 나누어가도록 반복해서 홀수가 나와서 -1을 해준 횟수가 총 건전지 사용량이 된다고 생각.