s.count('0')
문자열 s 안에 있는 0의 개수를 구한다.
s = s.replace('0', '')
문자열 s 안에 있는 0을 공백으로 치환한다.
s = (bin)(len(s))[2:]
문자열 s의 길이를 이진법으로 바꾸면 0b~로 시작한다
따라서 문자열의 2번째 문자부터 출력해야 원하는 이진값을 얻을 수 있다
def solution(s):
answer = []
# 제거할 0의 개수
cnt = 0
# 0 제거 후 길이
rmv = 0
while True:
# 1이 되면 무한 반복 종료
if s == '1':
break
rmv += s.count('0')
s = s.replace('0', '')
# s에 이진화된 0 제거 후 길이를 넣는다 (0b~로 나오기 때문에 2번째부터 사용)
s = bin(len(s))[2:]
cnt += 1
answer = [cnt, rmv]
return answer
def solution(s):
a, b = 0, 0
while s != '1':
a += 1
num = s.count('1')
b += len(s) - num
s = bin(num)[2:]
return [a, b]
어차피 1, 0으로만 이루어진 문자열이므로 전체 길이 - 1의 개수 를 구해도 제거될 0의 개수를 구할 수 있다