프로그래머스 다음 큰 숫자
자연수 n이 주어졌을 때, 다음 조건을 만족하는 n보다 큰 숫자를 반환하는 함수를 완성해주세요.
- n보다 큰 자연수
- 2진수로 변환했을 때 1의 갯수가 n을 2진수로 변환했을 때 1의 갯수와 같음
- 위 조건을 만족하는 수 중 가장 작은 수
n을 2진수로 변환했을 때 1의 갯수를 구하고, n에 1씩 더하면서 2진수 변환한 값의 1의 개수가 같으면 그 값을 반환합니다.
let n1 = n.toString(2).split('').filter(x=> x === '1').length;
n을 2진수 변환하여 split으로 분리하고 filter로 1만 골라낸 배열의 길이를 구합니다.
for(let m = n+1; m < 1000000; m++){
let m1 = m.toString(2).split('').filter(x=> x === '1').length;
if(m1 === n1) return m;
function solution(n) {
let answer = 0;
let n1 = n.toString(2).split('').filter(x=> x === '1').length;
for(let m = n+1; m < 1000000; m++){
let m1 = m.toString(2).split('').filter(x=> x === '1').length;
if(m1 === n1) return m;
}
}