본문 바로가기

Algorithm/String

(Javascript) - 프로그래머스(연습문제) : 다음 큰 숫자

반응형

programmers.co.kr/learn/courses/30/lessons/12911?language=javascript

 

코딩테스트 연습 - 다음 큰 숫자

자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니

programmers.co.kr

진법변환문제였습니다.

 

 

Code

function solution(n) {
  n = parseInt(n);
  let k = n.toString(2);
  let cnt = 0;
  for (let i = 0; i < k.length; i++) {
    if (k[i] === "1") cnt++;
  }
  for (let i = n + 1; i <= 2000000; i++) {
    let s = i.toString(2);
    let c = 0;
    for (let j = 0; j < s.length; j++) if (s[j] === "1") c++;
    if (c === cnt) return parseInt(s, 2);
  }
}