레쭈고 코테

코딩 테스트 - 60

정땅미 2025. 2. 10. 22:33

오늘의 문제는

 

이진 변환 반복하기였습니닷

사실 이 문제는 여러 번 들낙해도 풀지 못하고 나갔었는데 어제 친구가 풀었다길래 저도 용기를 내서 풀었고, 내가 저번에 풀어둔 코드에 while 문 추가해서 성공했습니다!

function solution(s) {
    var answer = [];
    var cnt = s.split('0').length - 1;
    var whicnt = 0;
    while(s.length > 1) {
        s = s.replace(/0/g,'');
        s = Number(s.length).toString(2);
        cnt += s.split('0').length - 1;
        whicnt++;
    }
    answer.push(whicnt);
    answer.push(cnt)
    return answer;
}

 

우선 cnt 에서 처음에 0의 개수를 구해주고, 만약 s.length 가 1이 되면 바로 끝내야 해서 저런 조건식을 넣어 줬어요

그리구, 정규식을 이용해서 0을 전부 제거해 줬습니다. 

0이 제거된 s 문자열을 메서드를 통해서 이진 문자열 숫자로 바꿔 주었고 0의 개수를 또 더해 주었습니다.

왜냐하면 answer 에 최종적으로 들어가야 하는 값은 while 문이 총 몇 번 돌았는지, 0이 몇 개가 제거 되었는지이기 때문에 마지막에는 push 를 해 줬습니다!

오늘 코테도 완성 ㅎㅎ 부히힛 

'레쭈고 코테' 카테고리의 다른 글

코딩 테스트 - 61  (0) 2025.02.11
코딩 테스트 - 59  (0) 2025.01.22
코딩 테스트 - 57  (0) 2025.01.12
코딩 테스트 - 56  (1) 2025.01.08
코딩 테스트 - 55  (0) 2025.01.07