function solution(n) {
var answer = 0;
let first_index = 0;
let left_cnt = [];
let target = n.toString(2)
target.split('').map((e,i) => {
if(target[i-1] === '0' && e === '1'){
first_index = i
}
if(e === '1'){
left_cnt.push(i)
}
})
left_cnt = left_cnt.filter(e => e>first_index).length
let length = target.slice(first_index+1).length
let array = new Array(length).fill(0)
for(let i = 0 ; i < left_cnt ; i++){
array[i] = 1
}
array = array.reverse().join('')
const cng = first_index === 0 ? '10' + array : target.slice(0,first_index-1) +'10' + array
console.log(parseInt(cng,2))
answer = parseInt(cng,2)
return answer;
}
function solution(n) {
var answer = 0;
const num_one = n.toString(2).split('1').length
while(true){
n++;
if(n.toString(2).split('1').length === num_one){
return n
}
}
return answer;
}