본문 바로가기
Coding Test/JavaScript

[Javascript] (프로그래머스 level 2) 다음 큰 숫자

by Chaedie 2022. 7. 1.
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일 때 재귀함수로 들어가게 만듬 이건 좀 신기하네

댓글