Algorithm

[LeetCode/Swift] 1342. Number of Steps to Reduce a Number to Zero

개발자 수니 2024. 1. 17. 15:18
728x90
반응형

💡 문제 (Easy)

 

LeetCode - The World's Leading Online Programming Learning Platform

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

Given an integer 'num', return the number of steps to reduce it to zero.

In one step, if the current number is even, you have to divide it by '2', otherwise, you have to subtract '1' from it.

주어진 정수 'num'이 있을 때, 이를 0으로 줄이기 위한 단계 수를 반환합니다.

한 번의 단계에서, 현재 숫자가 짝수인 경우에는 '2'로 나누어야 하며, 홀수인 경우에는 '1'을 빼야 합니다.

 

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

 

Constraints:

  • 0 <= num <= 106

👩🏻‍💻 해결

1차 반복문 사용

class Solution {
    func numberOfSteps(_ num: Int) -> Int {
        var n: Int = num
        var cnt: Int = 0
        while n != 0 {
            n = n % 2 == 0 ? n / 2 : n - 1
            cnt += 1
        }
        return cnt
    }
}
728x90
반응형