1. 임의의 정수 n이 2의 거듭제곱인지 판별

Mono crom·2021년 1월 8일
0

이진법 비트연산 그런거 모른다. 무식하게 때려풀어도 풀린다.


Way

function powerOfTwo(num) {
  
  if(num === 1) {
  	return true;
  }
  
  let power = 2;
  
  while(power < num) {
    power *= 2;
  }
  
  return power === num;
}

Explanation

  1. num이 몇이건 num⁰ = 1 은 정해져있는 수순이므로 따로 뺀다.

  2. power 변수에 2를 할당한 다음, num 보다 작은 동안에 2씩 계속 곱한다.

  3. 만약 num 이 2의 거듭제곱이라면, while문을 막 빠져나온 power 값과 일치할 것이다.

  4. === 연산자를 사용했으므로 power 와 num 이 같은지 여부가 boolean 형태로 리턴된다.

profile
니가 진짜로 원하는게 뭐야

0개의 댓글