Coding Test/JavaScript
[Javascript] (프로그래머스 level 2) 다음 큰 숫자
Chaedie
2022. 7. 1. 20:58
728x90
[Javascript] (프로그래머스 level 2) 다음 큰 숫자
💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.
내 풀이
function solution(n) {
let next = n;
const nCountOne = n.toString(2).split('').filter((x) => x === '1').length;
while (true) {
next++;
if (next.toString(2).split('').filter((x) => x === '1').length === nCountOne) {
return next;
}
}
}
다른 사람 풀이
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);
}
- 1) 옵셔널 파라미터로 변수 선언 한 줄 줄임
- 2) match(정규식)으로 내가
split(’’).filter((x) ⇒ x ===’1’).length
한걸match(/1/g).length
로 줄임 - 3) 삼항 연산자에 false일 때 재귀함수로 들어가게 만듬 이건 좀 신기하네