[LeetCode] Number of Steps to Reduce a Number to Zero

아르당·2026년 4월 23일

LeetCode

목록 보기
278/303
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

정수 num이 주어졌을 때, 0으로 만드는 데 필요한 단계 수를 반환해라.
한 단계에 현재 숫자가 짝수이면 2로 나누고, 그렇지 않다면 1을 뺀다.

Example

#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

Constraints

  • 0 <= num <= 10^6

Solved

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;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글