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

자세한 설명은 링크 참고

주어진 문자열을 주어진 조건대로 바꾸어서 반복하여 1이 될까지 반복된 횟수와 없어진 0의 개수를 구하는 문제이다.

while문은 사용해본적이 많지 않았다.
while을 반복하기 위해서 옆에 조건을 붙여주는데, 조건을 만족하면 다시 반복하겠다는 뜻이다.
이후에 if문으로 break의 조건을 넣어주어 멈춰주어야 한다.
코드를 보면

def solution(s):
    x = 0
    cnt = 0
    while True :
        if s == '1' :
            break
        x += s.count('0')
        s = s.replace('0', '')
        s = bin(len(s))[2:]
        cnt += 1
    answer = [cnt, x]
    return answer

while문을 True로 지정하여서 if문의 break조건이 만족되지 않으면 무한히 반복되도록 설정하였다. 문제의 조건에 따라 s가 1이 될때까지 반복하게 된다.
결과는

좋은 웹페이지 즐겨찾기