2차 공부/알고리즘

이진 변환 반복하기

공대탈출 2024. 7. 9. 15:07

프로그래머스 - 이진 변환 반복하기

 

작성한 코드

function solution(s) {
    let binaryNum = 0;
    let zeros = 0;
    let sLength;
    while (s.length > 1) {
        sLength = s.length;
        s = s.split('0').join('')
        binaryNum++
        zeros += (sLength - s.length)
        s = s.length.toString(2)
    }
    return [binaryNum, zeros]
}

이진법 변환 횟수인 binaryNum과 없앤 0의 개수인 zeros 변수를 만든다.

s.length가 1이 될때까지 반복하는데

먼저 s에 0을 제거해주고 변환횟수에 1을 더하고, 사라진 0의 개수를 길이비교를 진행하여 더한다.

반복의 마지막으로 s의 길이를 2진변환하여 s에 저장한다.

 

반복이 끝나면 binaryNum과 zeros를 배열로 넘긴다.

'2차 공부 > 알고리즘' 카테고리의 다른 글

n^2 배열 자르기  (0) 2024.07.19
괄호 회전하기  (0) 2024.07.17
JadenCase 문자열 만들기  (0) 2024.07.08
최댓값과 최소값  (0) 2024.07.05
신고 결과 받기  (0) 2024.07.04