코딩테스트 연습 - 이진 변환 반복하기 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 이진 변환 반복하기

 

programmers.co.kr

풀이)

문자열 num을 탐색하면서 '0'이면 zeroNum을 증가시키고, '1'이면 deleteZero에 추가한다.

deleteZero의 길이를 뽑아낸 뒤 이진수로 변환시킨다(문자열로 반환됨).

변환된 문자열이 1이 될 때까지 위의 과정을 반복한다.(반복횟수와 zeroNum을 저장하고 반환한다.)

 

def solution(s):
    answer = []
    zeroNum = 0 # 제거된 0의 개수
    count = 0 # 변환 과정의 횟수
    newNum = s
    while True:
        count += 1 # N회차
        deleteZero = '' # 0제거 후 
        for i in newNum:
            if i == '0':
                zeroNum += 1
            else:
                deleteZero = deleteZero + '1'
        deleteZeroLen = len(deleteZero)
        newNum = format(bin(deleteZeroLen)[2:]) # 이진변환
        
        if(newNum == '1'):
            break
            
    answer.append(count)
    answer.append(zeroNum)
    return answer

'프로그래머스' 카테고리의 다른 글

괄호 변환  (0) 2021.10.31
n^2 배열 자르기  (0) 2021.10.24
오픈채팅방  (0) 2021.10.24
후보키  (0) 2021.10.18
괄호 회전하기  (0) 2021.10.18

+ Recent posts