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

준규·2022년 11월 22일
0

정수 num이 주어질 때 num를 0으로 만들어가는 step의 수를 리턴하는 문제이다.

step 은 다음과 같이 진행된다.

  1. num이 짝수라면 2로 나눈다
  2. num이 홀수라면 1을 뺀다.

Example을 보자

예시와 같이 초기 num 을 가지고 짝수이면 2로 나누어가고 홀수라면 1을 빼는 step을 진행해서 num이 0 이되는 순간 진행한 step의 수를 리턴하면 될것 같다.

const numberOfSteps = function (num) {
  let count = 0;

  while (num !== 0) {
    num % 2 === 0 ? (num = num / 2) : (num = num - 1);
    count++;
  }

  return count;
};

while 문을 num이 0이 아닐동안 계속 돌면서 num 이 짝수인지를 체크를 해주었다. 짝수라면 2로 나누어서 다시 num에 할당을 해주었고 홀수라면 1을 빼서 num에 할당을 해주었고

num이 0이되면 while 문을 빠져나오면서 count 값을 리턴해주었다.

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글