본문 바로가기
  • 개발 / 공부 / 일상
Programmers

(Programmers) [Lv. 2] 다음 큰 숫자

by JJeongHyun 2023. 2. 10.
반응형

문제 설명

  • 자연수 n이 매개변수로 주어진다
  • n의 다음 큰 숫자는 다음과 같이 정의
    • 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수
    • 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 개수가 같다
    • 조건 3. n의 다음 큰 숫자는 조건 1,2 를 만족하는 수중 가장 작은 수
  • 자연수 n의 다음 큰 숫자를 반환하는 solution 함수를 완성하시오

 

제한사항

  • n은 1,000,000 이하의 자연수

 

입출력 예시

다음 큰 숫자 입출력 예시

 

전체 코드

function solution(n) {
  let originalLength = n
    .toString(2)
    .split("")
    .filter((item) => item == 1).length;
  while (1) {
    let tempNum = ++n;
    let tempLength = tempNum
      .toString(2)
      .split("")
      .filter((item) => item == 1).length;

    if (originalLength === tempLength) return tempNum;
  }
}