https://school.programmers.co.kr/learn/courses/30/lessons/12980?language=javascript
숫자 N: 1 이상 10억 이하의 자연수
숫자 K: 1 이상의 자연수
function solution(n){
let result = 0;
while(n > 0){
if(n % 2 === 0){
n /= 2;
} else {
n -= 1;
result += 1;
}
}
return result;
}
n을 5라고 가정했을 때, 반복문을 시작합니다. 5는 0보다 크기 때문에 반복문을 시작하고, 5 % 2 === 0이 아니기 때문에 else로 갑니다.
5 - 1 해서 n = 4가 됐고, result(이동값)은 1이 됩니다.
n은 현재 4, 4 % 2 === 0이기 때문에, n = 4 / 2 해서 n은 2가 됩니다.
다시 n은 2, 2 % 2 === 0이기 때문에, n = 2 / 2 해서 n은 1이 됩니다.
현재 n은 1, 1 % 2 === 0이 아니기 때문에 else로 들어가고, n = 1 - 1해서 0이 됩니다.
result(현재 1) result = result + 1해서 result는 2가 됩니다.
그럼 n(5)까지 이동하기 위해서는 최소 result(2)만큼 이동해야 된다는 뜻입니다.