본문 바로가기

Coding Test/Programmers

[프로그래머스/파이썬] 이진 변환 반복하기

728x90

 

나의 풀이

def solution(s):
    answer = [0, 0]
    while s != '1':
        s = list(s)
        idx = 0
        while idx < len(s):
            if s[idx] == '0':
                s.pop(idx)
                answer[1] += 1
            else:
                idx += 1
        s = bin(len(s))[2:]
        answer[0] += 1
    return answer

 

 

 

1의 개수를 활용한 풀이

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]

 

 

 

 

반응형