[프로그래머스 level2] 다음 큰 숫자

김예지·2021년 10월 18일
0

문제

https://programmers.co.kr/learn/courses/30/lessons/12911


문제 풀이

코드1

function solution(n) {
    let nextNum=n;
    while(true){
        nextNum++;
        if(n.toString(2).split('').filter(v=>v==='1').length === nextNum.toString(2).split('').filter(v=>v==='1').length){
            return nextNum;
        }
    }
}

n.toString(2).split('').filter(v=>v==='1').length를 통해 이진수로 변경 후 1의 갯수를 센다.

코드2

function solution(n) {
    let nextNum=n;
    while(true){
        nextNum++;
        if(n.toString(2).match(/1/g).length === nextNum.toString(2).match(/1/g).length) {
            return nextNum;
        }
    }
}

정규표현식을 통해 문자열에서 일치하는 부분을 찾을 수 있는 메소드인 match()메소드가 있어서, 풀어봤다. 코드1보다 더 간단하다.

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

1개의 댓글

comment-user-thumbnail
2021년 10월 27일

10/27
문자에서 특정 요소의 개수 세는 방법에 대한 logic 이해하기

답글 달기