문제
https://school.programmers.co.kr/learn/courses/30/lessons/70129
코드
function solution(str) {
let round = 0; // 회차
let zeroCnt = 0; // 제거한 0의 개수
// s가 '1'이 될 때까지 반복
while (str !== "1") {
round++; // 회차 + 1
let oneCnt = 0; // 0을 제거한뒤 남아있는 1의 갯수 == 남은 문자열의 길이
for (let s of str) {
if (s === "0") zeroCnt++;
else oneCnt++;
}
// 이진수로 변환하기
let newStr = "";
while (oneCnt > 0) {
newStr += String(oneCnt % 2); // 이진수 만들기
oneCnt = Math.floor(oneCnt / 2); // 몫을 oneCnt에 저장
}
str = newStr; // 이진수로 변환한 문자열을 다시 str에 저장
}
return [round, zeroCnt];
}
'Algorithm > Programmers' 카테고리의 다른 글
[Lv.2] 프린터 - JavaScript (0) | 2023.03.21 |
---|---|
[Lv.2] 피로도 - JavaScript (0) | 2023.03.18 |
[Lv.3] 여행 경로 - JavaScript (0) | 2023.03.11 |
[Lv.3] 징검다리 건너기 - JavaScript (0) | 2023.03.07 |
[Lv.3] 기지국 설치 - JavaScript (0) | 2023.03.06 |
댓글