프로그래머스 - [Level 2] 다음 큰 숫자(JAVASCRIPT)
카테고리 : 시뮬레이션
풀이 과정은 간단하다.
1) 2진수로 변환
2) couting 함수로 1의 갯수 return
3) n 과 target 넘버 = n+1을 초기 값으로
설정하고 n과 target 넘버의 1의 갯수가 같을 때까지
target 넘버의 크기를 1씩 증가시킨다.
소스 코드
function solution(n) {
const toBinary=(num)=>{
let str="";
while(num){
str+=(num%2+"");
num=Math.floor(num/2);
}
return str.split("").reverse().join("");
}
const counting=(num)=>{
return num.split("").filter(a => a==="1").length;
}
const searchNextNum=(num)=>{
let matchNum=num+1;
while(counting(toBinary(num))!==counting(toBinary(matchNum))) matchNum++;
return matchNum;
}
return searchNextNum(n);
}
다른 사람의 풀이
function solution(n,a=n+1) {
return n.toString(2).match(/1/g).length == a.toString(2).match(/1/g).length ? a : solution(n,a+1);
}
Leave a comment