차차로그
[JS] 월간 코드 챌린지 시즌1 > 이진 변환 반복하기 본문
function solution(s) {
var zero = 0;
var count = 0;
while(s.length > 1){
for(var i = 0; i < s.length; i++){
if(s[i] == 0){
zero++;
}
}
s = s.split("0").join("").length.toString(2);
count++;
}
return [count, zero];
}
문자열에 0을 없앤 후 문자열의 길이를 2진법으로 바꿔 최종적으로 1만 남기는 문제다.
계속 반복을 해야하기때문에 while 반복을 했고 최종적으로 1만 남으면 s의 길이가 1이 되는 것이기에 조건은 s.length > 1 로 설정했다.
문자열 중에 0이 있으면 zero를 1씩 올려주었고, 문자열 전체에서 0을 찾아본 후에, 0을 기준으로 split해 1만 남은 배열로 만든 후 join으로 다시 문자열로 만들어주고 그 길이를 2진법으로 바꿔줬다.
이러한 과정을 할 때마다 count도 1씩 올려줬다.
최종적으로 [count, zero]를 리턴해주면 끝!
'코딩테스트' 카테고리의 다른 글
[JS] 스택/큐 > 올바른 괄호 (0) | 2022.09.13 |
---|---|
[JS] 연습문제 > 최솟값 만들기 (0) | 2022.09.08 |
[JS] 연습문제 > JadenCase 문자열 만들기 (0) | 2022.09.08 |
[JS] 연습문제 > 최댓값과 최솟값 (0) | 2022.09.08 |
[JS] 월간 코드 챌린지 시즌3 > n^2 배열 자르기 (0) | 2022.09.07 |
Comments