문제 풀이/프로그래머스
[Programmers] Lv2. 이진 변환 반복하기 (JavaScript)
hyundol97
2023. 11. 12. 18:08
문제
풀이
1차
function solution(s) {
let str = s;
let cnt = 0;
let sum = 0;
while(str.length > 1) {
let one_arr = [];
for(let i = 0; i < str.length; i++) {
if(str[i] === '1') {
one_arr.push('1');
} else {
sum ++;
}
}
str = one_arr.length.toString(2);
cnt ++;
}
return [cnt, sum];
}
2차
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;
}
리뷰
- match와 replace를 활용한 조건, 배열 값 변환 시도 필요