최소 이동을 위해 주어진 N을 2로 나눈다. (순간이동)
나눌수 없을 때 건전지 사용량(answer) 을 1 추가하고 n-1 진행
N이 1이되면 answer을 추가하고 종료
public class Solution {
public int solution(int n) {
int ans = 0;
int a = n;
for(int i = 0; i<a ; i++){
if(n%2 == 0){
n = n/2;
} else if(n == 1){
ans++;
break;
} else {
ans++;
n = n-1;
}
}
return ans;
}
N | result |
---|
추가한 케이스는 없다.
(제한사항)10억 이하의 자연수
빠르게 풀 수 있는 시간복잡도 고민.