https://school.programmers.co.kr/learn/courses/30/lessons/70129
1. 0제거
2. 0을 제거한 수 의 1의 갯수의 이진수
3. return [변화 횟수, 변화 과정 중 0의 총 갯수]
function solution(s) {
var answer = [];
let changeCount = 0;
let zeroCount = 0;
// s가 "1"이 될 때까지
while(s.length > 1) {
let zeros = 0;
zeros += [...s].filter(e => e === '0').length;
zeroCount += zeros
const removedZeroLength = s.length - zeros;
s = removedZeroLength.toString(2);
changeCount++;
}
answer = [changeCount, zeroCount]
return answer;
}
- 0 찾기: s.match(/0/g)
- 0 없애기: s.replace(/0/g, '')
- 숫자.toString(2): 이진법 변환
function solution(s) {
var answer = [0, 0];
while (s.length < 1) {
answer[0] += 1;
answer[1] += s.match(/0/g).length;
s = s.replace(/0/g, '').length.toString(2); // 0제거한 수의 1갯수의 이진법
}
return answer;
}
'알고리즘' 카테고리의 다른 글
[프로그래머스] 숫자의 표현 (0) | 2023.07.17 |
---|---|
[프로그래머스] 예상대진표 (0) | 2023.07.13 |
[프로그래머스] 짝지어 제거하기 (stack) (0) | 2023.06.08 |
[프로그래머스] 다음 큰 숫자 (0) | 2023.06.08 |
[프로그래머스] 기사단원의 무기 (0) | 2023.06.07 |