본문 바로가기
LeetCode

1342. Number of Steps to Reduce a Number to Zero

by 싼쵸 2022. 6. 5.
반응형

문제

나머지가 0이 나올 때까지 나누기를 진행하고 나누기의 진행한 횟수를 체크 리턴하는 문제이다.

내 현재 풀이

/**
 * @param {number} num
 * @return {number}
 */
var numberOfSteps = function(num) {
            let cnt  = 0
        while(num > 0){
            num %2 === 1 ? num-=1 : num /=2
                cnt++
        }
    return cnt;
};

while문을 통해 num이 0 보다 큰 수까지 진행을 하고 홀수이면 -1 짝수이면 /2를 진행했다. 그리고 횟수 체크를 위해 cnt++를 했다.

 

내 예전 풀이

/**
 * @param {number} num
 * @return {number}
 */
var numberOfSteps = function (num) {
    let count = 0;

    while(num){
        if (num % 2) {
            count++;
            num--;
            console.log('num1', num)
        } else {
            count++;
            num = num / 2;
              console.log('num2',num)
        }
    }
  
    return count;
};

ㅋㅋㅋㅋㅋㅋㅋㅋ똑같은 풀이긴한데 계속 느끼고 있지만, 이번 코드가 확실히 간결하게 작성하려는 게 느껴진다. 확실히 요즘은 if문을 사용하기보다는 삼항 연산자를 쓰는 게 더 자연스럽다.

 

다른 사람풀이

이번 문제 다른 사람 풀이를 찾아봤는데, 신기하게 느낀 풀이가 없어 넘어간다 ㅋㅋㅋㅋ

 

 

반응형

댓글