프로그래머스 풀이
프로그래머스 -이진 변환 반복하기- LV2
반오십 코린이
2023. 1. 9. 00:01
728x90
1. 맨처음 주어진 문자열을 기준으로 0을 제거한다.
2. 앞선 작업을 마무리 한 문자열의 길이를 이진변환한다.
3. 이를 반복한다.
a = bin(4)
-> "0b100"
a[2:]
-> "100"
def solution(s):
answer = []
cnt1 = 0 -> 제거 0
cnt2 = 0 -> 회차
while s != '1': -> 문자열이 1이 되면 탈출
length = len(s)
s = s.replace('0','') -> 0을 공백으로 바꿔주는 매서드
cnt1 += length - len(s) -> 0을 얼마만큼 없앴는지 카운트
s = bin(len(s)) -> s의 길이를 2진수로 만들기
s = s[2:] -> s는 0b11111 형태로 바뀌기 때문에 index 2부터 끝까지 s문자열로 변환
cnt2+=1 -> 회차 카운트
answer.append(cnt2)
answer.append(cnt1)
return answer
728x90