ji-0630 / CodingTest

코딩테스트 연습 기록
0 stars 0 forks source link

이진 변환 반복하기 #228

Closed ji-0630 closed 1 year ago

ji-0630 commented 1 year ago

문제 설명

image

ji-0630 commented 1 year ago

나의 풀이

def solution(s):
    zero = 0
    num = 0
    while s != "1":
        # 0 제거
        temp = ""
        for i in s:
            if i == "0":
                zero += 1
            else:
                temp += i
        # 2번
        s= ""         
        c = len(temp)   
        while c != 1:
            s += str(c % 2)
            c = c // 2
        s += "1"   
        s = s[::-1]
        num += 1

    return [num, zero]
ji-0630 commented 1 year ago

다른 사람의 풀이

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]
ji-0630 commented 1 year ago

다시 풀었을 때

def solution(s):
    zero, num = 0, 0

    while s != "1":
        zero += (s.count("0"))
        s = bin(s.count("1"))[2:]
        num += 1
    return [num, zero]