문제
프로그래머스 문제
내 풀이
- 맨 처음에 for를 돌려서 0을 지운 횟수를 체크했더니 마지막 문제에서 시간초과가 났다. 그래서 그냥 0 개수 split해서 세고 replaceAll 처리했더니 속도가 굉장히 개선됐다.
- 1점 맞은 답변^^!
function solution(s) {
let i = 0;
let z = 0;
while(s > 1){
z += s.split("0").length-1;
s = s.replaceAll("0","")
s = s.length.toString(2);
i++;
}
return [i, z];
}
개선점
- match() -> 찾는 문자열을 그 개수만큼 배열로 리턴
function solution(s) {
var 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;
}