본문 바로가기

프로그래머스

5/19[문제풀이] 프로그래머스 Lv2 다음 큰 숫자

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

 

문제 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
function solution(n) {
    var answer = 0;
 
    const result = n.toString(2).match(/1/g).length;
    // console.log(result)
    
    while(n++){
        if(n.toString(2).match(/1/g).length === result) {
            return n
        }
    } 
}
 
cs

 

그 동안 문제를 풀고, 다른 사람들의 문제 풀이를 보면서 정규표현식을 공부해서 잘 적용하고 싶다고 생각해서 조금씩 공부했었는데 처음으로 사용 할 수 있었던 문제였던 것 같다.

n이 이진수로 변화 된 값에 1이 몇 개인지 확인 후 while 문으로 계속 n을 기존의 n의 1의 갯수와 똑같을 때 까지 더해서 답을 구하는 식으로 로직을 작성했다. 확실히 정규표현식을 쓰니 코드가 간결해서 좋은 것 같긴하다...