티스토리 뷰
728x90
문제 링크
programmers.co.kr/learn/courses/30/lessons/70129
풀이
정규 표현식을 이용하여 간단하게 풀 수 있습니다.
1) regexp /1/g를 이용해 s에서 1만 뽑아줍시다.
2) 정답에 (s의 길이 - 위에서 구한 1들의 개수)를 더해줍니다.
3) 1들의 개수를 2진 변환합니다.
4) s가 1이 될 때까지 반복합시다.
정답 코드
function solution(s) {
const ans = [0, 0];
while(s !== '1'){
const cnt = s.match(/1/g).length;
ans[0]++;
ans[1] += s.length - cnt;
s = cnt.toString(2);
}
return ans;
}
728x90
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[프로그래머스] 삼각 달팽이 (월간 코드 챌린지 시즌 1) (0) | 2021.04.15 |
---|---|
[프로그래머스] 쿼드압축 후 개수 세기 (월간 코드 챌린지 시즌 1) (0) | 2021.04.15 |
[프로그래머스] 3진법 뒤집기 (월간 코드 챌린지 시즌 1) (0) | 2021.04.15 |
[프로그래머스] 두 개 뽑아서 더하기 (월간 코드 챌린지 시즌 1) (0) | 2021.04.15 |
[프로그래머스] 내적 (월간 코드 챌린지 시즌 1) (1) | 2021.04.15 |
댓글