난이도: Lv.2
문제: https://school.programmers.co.kr/learn/courses/30/lessons/12911
알고리즘
1의 개수를 카운팅 하는 방법
1. toString() 함수로 2진수 문자열로 변환
2. 1을 정규표현식을 사용하여 replace() 함수로 0 제거
3. 2의 길이 구하기
다음 큰 숫자 구하는 방법
n + 1인 자연수부터 2진수의 1의 개수를 카운팅하여 n을 2진수로 변환한 것의 1의 개수와 동일한지 확인
코드
function solution(n) {
let answer = n + 1;
const nOneCount = n.toString(2).replace(/0/g, '').length;
while (true) {
if (answer.toString(2).replace(/0/g, '').length === nOneCount) { break; }
answer++;
}
return answer;
}
주저리
이진 변환 반복하기 문제에서 썼던 코드랑 동일한 문제다. ez하게 풀어서 할 말이 딱히 없군
'코딩테스트' 카테고리의 다른 글
[JS] 짝지어 제거하기 (0) | 2023.11.15 |
---|---|
[JS] 피보나치 수 (0) | 2023.11.13 |
[JS] 숫자의 표현 (1) | 2023.11.10 |
[JS] 이진 변환 반복하기 (0) | 2023.11.10 |
[JS] 올바른 괄호 (0) | 2023.11.10 |