Muscardinus
이진 변환 반복하기 본문
728x90
programmers.co.kr/learn/courses/30/lessons/70129?language=javascript
코딩테스트 연습 - 이진 변환 반복하기
programmers.co.kr
function rec(s, answer) {
if (s === "1") return answer;
else {
let cnt = 0;
let changeS = "";
s.split("").forEach((el) => {
if (el === "1") changeS += el;
else cnt++;
});
changeS = changeS.length.toString(2);
return rec(changeS, [answer[0] + 1, answer[1] + cnt]);
}
}
function solution(s) {
let answer = [0, 0];
return rec(s, answer);
}
좋은 풀이
function solution(s) {
let answer = [0, 0];
while (s.length > 1) {
answer[0]++;
answer[1] += (s.match(/0/g) || []).length;
s = s.replace(/0/g, "").length.toString(2);
}
return answer;
}
728x90
'알고리즘 문제 > [프로그래머스] Lv2' 카테고리의 다른 글
[3차] 방금그곡 (0) | 2021.02.10 |
---|---|
[3차] 압축 (0) | 2021.02.07 |
쿼드압축 후 개수 세기 (0) | 2021.02.03 |
메뉴 리뉴얼 (0) | 2021.02.03 |
삼각달팽이 (0) | 2021.02.01 |
Comments