주어진 문자열을 주어진 조건대로 바꾸어서 반복하여 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이 될때까지 반복하게 된다.
결과는