[Daily Coding] _powerOfTwo

fejigu·2022년 8월 6일
1

알고리즘 & 자료구조

목록 보기
10/24


문제
수를 입력받아 2의 거듭제곱인지 여부를 리턴해야 합니다.

입력
인자 1 : num
number 타입의 정수 (num >= 1)

출력
boolean 타입을 리턴해야 합니다.

주의 사항
반복문(while)문을 사용해야 합니다.
2의 0승은 1입니다.
Number.isInteger, Math.log2, Math.log 사용은 금지됩니다.

입출력 예시

let output1 = powerOfTwo(16);
console.log(output1); // true
let output2 = powerOfTwo(22);
console.log(output2); // false

💻 코드 작성

function powerOfTwo(num) {
  if (num === 1) {
    return true;
  }
 //홀수이면 거짓
  if (num % 2) {
    return false;
  }
 //초기값은 2
  let powered = 2;
  while (powered < num) {
    powered = powered * 2;
  }
 //반복이 끝나면 powered와 num 같은지 비교 
  return powered === num;
}

📍 회고

초기값 설정 및 초기값과의 비교를 할 생각을 하지 못했다.
if 구문에 비해 while 구문 사용이 익숙치 않았다.

profile
console.log(frontendjigu( ☕️, 📱); // true

0개의 댓글