연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 판매하고 있다.
아이언 슈트를 입고 이동하면 건전지를 사용하지 않아도 되지만 K 칸을 점프하게 될 경우 K 만큼의 건전지 사용량이 든다.
건전지 사용량을 최소로 해야하므로, n이 2로 나누어 떨어지면 n/=2를 계산하고 그렇지 않은 경우 건전지사용량 +1, n-=1을 해주면 된다.
#include <iostream>
using namespace std;
int solution(int n)
{
int ans = 1;
while(n!=1) {
if (n%2!=0) {
ans++;
n-=1;
} else {
n/=2;
}
}
return ans;
}