본문 바로가기
일반 학습/코딩 테스트

[프로그래머스] 다음 큰 숫자

by StelthPark 2022. 5. 3.

처리조건

풀이

n으로 입력받은 숫자를 toString으로 2진수 변환하고 2진수 자리마다 1의 갯수를 카운트한다. 이후 while문을 돌리면서 n을 1씩 올려주며 해당 n에서도 2진수변환후 1의 갯수를 카운트하고 앞전 1의 갯수와 같다면 break하고 현재 n을 리턴해주면 된다. 쉽다.

 

function solution(n) {
  let standardV = n.toString(2);
  let standardC = 0;
  for (one of standardV) {
    if (one === "1") standardC++;
  }

  while (1) {
    n++;
    let standardV2 = n.toString(2);
    let standardC2 = 0;
    for (one of standardV2) {
      if (one === "1") standardC2++;
    }
    if (standardC === standardC2) break;
  }
 return n
}

댓글