프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Try / Solution
function countOne(n) {
let count = 0
let binaryArr = n.toString(2).split('');
for(let i = 0; i < binaryArr.length; i++) {
if (binaryArr[i] == 1) { count++; }
}
return count;
}
function solution(n) {
let result = n;
while(true) {
result++;
if(countOne(result) == countOne(n)) {
return result;
}
}
}
n을 2진수로 바꾼 뒤 1의 개수를 찾는 함수 countOne
n에 1씩 더한 뒤 2진수로 바꿔 1의 개수를 찾아 n과 같은 1의 개수를 갖는 첫번째 수를 찾음
Advancd Solution
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);
}
재귀와 정규표현식을 활용한 풀이
'Programming' 카테고리의 다른 글
[알고리즘] 프로그래머스 점프와 순간 이동 (0) | 2023.10.16 |
---|---|
[알고리즘] 프로그래머스 카펫 (0) | 2023.10.13 |
[TIL] REST API, GraphQL (0) | 2023.10.06 |
[TIL] 프론트엔드 성능 최적화 (0) | 2023.10.01 |
[TIL] useEffect (1) | 2023.09.30 |