[Python] 프로그래머스 - 이진 변환 반복하기

728x90
반응형

programmers.co.kr/learn/courses/30/lessons/70129?language=python3

 

코딩테스트 연습 - 이진 변환 반복하기

 

programmers.co.kr

간단하게 문제에서 요구하는대로 풀면 되는 문제이다.

 

1. cnt에 s문자열 중 0의 갯수를 세서 증가시키고, s에서 0을 제거해준다.

 

2. new_s에 s의 길이를 2진법으로 변환하면 0b110 이런꼴로 나오기때문에 앞에 0b를 없앤 2번째 인덱스부터 저장해준다.

 

3. new_s가 '1'이 될때까지 반복

def solution(s):
    answer = []
    cnt, t = 0, 0
    while True:
        t += 1
        cnt += s.count('0')
        s = s.replace('0', '')
        new_s = bin(len(s))[2:]
        if new_s == '1':
            break
        else:
            s = new_s
    return [t, cnt]
728x90
반응형
TAGS.

Comments