-
[CodeKata] 프로그래머스 : 3.4(목), 다음 큰 숫자Algorithm 2021. 3. 4. 12:24반응형
🥋 Ooooth!! (Level 2)
🧮 풀이
function binOneCount(n) { const regex = /[1]/g; return n.toString(2).match(regex).length; } function solution(n) { const target = binOneCount(n) while (true) { n++; if (binOneCount(n) === target) { return n; break; } } }
- binOneCount() 함수는, n(숫자)를 이진법으로 변환한 뒤 '1'의 개수를 반환하는 함수이다.
- solution() 함수는 풀이를 진행할 함수이다. 먼저, 현재 숫자 n의 1의 개수를 target 변수에 저장한다.
- while 반복문을 실행한다. n에 1을 더하면서, 1의 개수를 세었을 때 target과 같다면 현재 숫자를 반환하고 반복문을 종료한다.
🖇 리뷰
toString() 이 숫자의 진법화를 편하게 한다는 점을 알고 있었기에 쉽게 풀 수 있는 문제였다.
배열 메서드(split + filter)를 사용하는 방법도 있지만, 효율성 테스트를 고려하여 문자열 자체에 match + 정규식 조합을 적용해봤다.
반응형'Algorithm' 카테고리의 다른 글
[CodeKata] 프로그래머스 : 3.8(월), 방문 길이 (0) 2021.03.08 [CodeKata] 프로그래머스 : 3.7(일), 게임 맵 최단거리 (0) 2021.03.07 [CodeKata] 프로그래머스 : 3.3(수), 올바른 괄호 & 튜플 (0) 2021.03.03 [CodeKata] 프로그래머스 : 3.2(화), 가장 큰 정사각형 찾기 (0) 2021.03.02 [CodeKata] 프로그래머스 : 3.1(월), 쿼드압축 후 개수 (0) 2021.03.01