이 문제는 크게 어렵지 않은 문제다.
현재까지 온 거리 x 2를 계속해서 움직이는 제일 좋은 경우의 수를 가지고 오는 것이기 때문에 주어진 수 n에서 2를 나누고, 거기에서 홀수일 경우 한칸 이동하는 것을 생각하여 1을 카운트하고, 그렇지 않을 경우 다시 나누는 경우로 계속해서 0이 될 때까지 반복한다.
import java.util.*;
public class Solution {
public int solution(int n) {
int ans = 0;
while (n > 0){
if (n % 2 == 0){
n /= 2;
} else {
n -= 1;
ans++;
}
}
return ans;
}
}
'Algorithm' 카테고리의 다른 글
[009] N개의 최소공배수 (0) | 2024.02.19 |
---|---|
[008] 구명보트 (0) | 2024.02.16 |
[006] 영어 끝말잇기 (0) | 2024.02.16 |
[005] 영어 끝말잇기 (풀이중) (0) | 2024.02.15 |
[004] 다음 큰 수 (1) | 2024.02.14 |