반응형
programmers.co.kr/learn/courses/30/lessons/70129
풀이방법
1. 문자열에서 '0'을 제거합니다.
2. 제거한 0의 개수를 세고 answer배열을 갱신합니다.
3. 기존 문자열을 남은 1의 길이를 이진법으로 바꾼 문자열로 바꾸고 '1'인지 비교합니다.
4. 갱신된 문자열이 '1'이라면 루프를 탈출해 반환합니다.
Code
function removeZero(convertedWord, answer) {
let tmp = "";
for (let i = 0; i < convertedWord.length; i++) {
if (convertedWord[i] !== "0") tmp += convertedWord[i];
else answer[1] += 1;
}
answer[0] += 1;
return tmp;
}
function solution(s) {
const answer = [0, 0];
let convertedWord = s;
while (1) {
let word = removeZero(convertedWord, answer);
convertedWord = word.length.toString(2);
if (convertedWord === "1") break;
}
return answer;
}
console.log(solution("0111010"));
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 프로그래머스(찾아라 프로그래밍 마에스트로) : 폰켓몬 답 (0) | 2021.01.01 |
---|---|
(C++) - 프로그래머스(2017 팁스타운) : 짝지어 제거하기 답 (0) | 2020.12.31 |
(C++, Javascript) - 프로그래머스(Summer/Winter Coding(~2018)) : 소수만들기 (0) | 2020.12.29 |
(C++) - 프로그래머스(월간코드챌린지) : 쿼드압축 후 개수 세기 (0) | 2020.12.28 |
(Javascript) - 프로그래머스(2019 카카오 겨울 인턴) : 징검다리 답 (0) | 2020.12.27 |