🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/70129?language=javascript
✏️ 풀이
function solution(s) {
let count = 0;
let deletedZero = 0;
let x = s;
while (x !== '1') {
const prevLength = x.length;
const curLength = x.replaceAll('0', '').length;
x = curLength.toString(2);
count++;
deletedZero += prevLength - curLength;
}
return [count, deletedZero];
}
replaceAll로 x의 0을 제거하고, 제거하기 전과의 length 비교를 통해 삭제된 0의 개수를 갱신한다.
그리고 x는 0을 제거한 뒤의 length를 2진수로 변환한 값으로 변경하고, 이 과정을 실행한 횟수를 증가시킨다.
x가 '1'이 될 때까지 반복한 뒤에 count와 deletedZero를 반환하면 된다.
'연습장 > 프로그래머스 문제풀이' 카테고리의 다른 글
[프로그래머스 Level 2] 디펜스 게임 - JavaScript (0) | 2022.12.30 |
---|---|
[프로그래머스 Level 2] 짝지어 제거하기 - JavaScript (0) | 2022.11.19 |
[프로그래머스 Level 2] 전력망을 둘로 나누기 - JavaScript (0) | 2022.11.05 |
[프로그래머스 Level 2] 피로도 - JavaScript (0) | 2022.11.05 |
[프로그래머스 Level 2] 할인 행사 - JavaScript (0) | 2022.11.04 |