반응형
문제
나머지가 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문을 사용하기보다는 삼항 연산자를 쓰는 게 더 자연스럽다.
다른 사람풀이
이번 문제 다른 사람 풀이를 찾아봤는데, 신기하게 느낀 풀이가 없어 넘어간다 ㅋㅋㅋㅋ
반응형
'LeetCode' 카테고리의 다른 글
1528. Shuffle String (0) | 2022.06.08 |
---|---|
1678. Goal Parser Interpretation (0) | 2022.06.07 |
1365. How Many Numbers Are Smaller Than the Current Number (0) | 2022.06.03 |
1281. Subtract the Product and Sum of Digits of an Integer (0) | 2022.06.02 |
1431. Kids With the Greatest Number of Candies (0) | 2022.05.31 |
댓글