본문 바로가기
프로그래머스 풀이

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

by 반오십 코린이 2023. 1. 9.
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