LeetCode : Number of Steps to Reduce a Number to Zero

yeonju·2020년 8월 6일

Given a non-negative integer num, return the number of steps to reduce it to zero. If the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it.

Example 1:
Input: num = 14
Output: 6
Explanation:
Step 1) 14 is even; divide by 2 and obtain 7.
Step 2) 7 is odd; subtract 1 and obtain 6.
Step 3) 6 is even; divide by 2 and obtain 3.
Step 4) 3 is odd; subtract 1 and obtain 2.
Step 5) 2 is even; divide by 2 and obtain 1.
Step 6) 1 is odd; subtract 1 and obtain 0.

Example 2:
Input: num = 8
Output: 4
Explanation:
Step 1) 8 is even; divide by 2 and obtain 4.
Step 2) 4 is even; divide by 2 and obtain 2.
Step 3) 2 is even; divide by 2 and obtain 1.
Step 4) 1 is odd; subtract 1 and obtain 0.

Example 3:
Input: num = 123
Output: 12

class Solution {
    public int numberOfSteps (int num) {
        int count = 0;
        while(num != 0) {
            if(num % 2 == 0) {
                num = num / 2; 
                count++;
            }else {
                num -= 1;
                count++;
            }
        }
        return count;
    }
}

주어진 양의 정수가 0이 될때까지 몇번의 스텝을 밟았는지 체크하는 문제. 양수면 2로 나누고 음수면 1뺀다.

profile
안녕하세요.

0개의 댓글