
이진수로 이뤄진 문자열을 주면 0을 모두 없앤 문자열의 길이를 다시 이진수로 만들어 다시 이진수로 만든 문자열이 1이 될 때까지 반복하며 몇번 반복하고, 0을 총 몇번 지웠는지 체크하기
def solution(s):
cnt = 0
zero = 0
while s!="1":
print(s)
before_len = len(s)
after_len = 0
for i in s:
if s == "1":
after_len+=1
zero += before_len - after_len
s = format(after_len, 'b')
cnt += 1
return [cnt, zero]
쉽게 하긴 했으나... 자꾸 시간 초과가 된다 ;;;
그래서 보니까 문자열 내에서 0을 찾는 게 for문으로 하다보니 시간이 너무 오래걸린다는 것을 알았다 ..
그래서 문자열 내에서 0을 찾는 방법을 검색하고 정답으로 제출하였다 !
def solution(s):
cnt = 0
zero = 0
while s != "1":
after_len = len(s) - s.count("0")
zero += s.count("0")
s = format(after_len, 'b')
cnt += 1
return [cnt, zero]
count를 잊고 있었네 ...