문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
정수 num이 주어졌을 때, 0으로 만드는 데 필요한 단계 수를 반환해라.
한 단계에 현재 숫자가 짝수이면 2로 나누고, 그렇지 않다면 1을 뺀다.
#1
Input: num = 14
Output: 6
Explanation:
1단계) 14는 짝수라서 2로 나누고 7이 된다.
2단계) 7은 홀수라서 1을 빼고, 6이 된다.
3단계) 6은 짝수라서 2로 나누고, 3이 된다.
4단계) 3은 홀수라서 1을 빼고, 2가 된다.
5단계) 2는 짝수라서 2로 나누고, 1이 된다.
6단계) 1은 홀수라서 1을 빼고, 0이 된다.
#2
Input: num = 8;
Output: 4
Explanation:
1단계) 8은 짝수라서 2로 나누고 4가 된다.
2단계) 4는 짝수라서 2로 나누고 2가 된다.
3단계) 2는 짝수라서 2로 나누고 1이 된다.
4단계) 1은 홀수라서 1을 빼고 0이 된다.
#3
Input: num = 123
Output: 12
class Solution {
public int numberOfSteps(int num) {
int result = 0;
while(num > 0){
if(num % 2 == 0){
num /= 2;
}else{
num -= 1;
}
result++;
}
return result;
}
}