이진 변환 반복하기

Whiimsy_dev·2022년 10월 11일
1

programmers

목록 보기
3/13
post-thumbnail

https://school.programmers.co.kr/learn/courses/30/lessons/70129

💡 생각

문자열에서 0 제거하면서 count로 개수 세놓기
전체 이진변환한 횟수도 세기
길이 c를 2진법으로 표현한 문자열
2진법으로 변환할 때 bin을 사용하게 되면 0b... 형태로 나오므로 [2:] 요걸 추가해줘야 숫자 부분만 구할 수 있다

📖 내 코드

def solution(s):
    total_count = 0
    zero_count = 0
    
    while s != "1":
        total_count += 1
        zero_count += s.count("0")
        s = str(bin(len(s.replace("0",""))))[2:]
    
    return total_count, zero_count

📑 다른 사람의 풀이

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]

이번 건 무난하게 비슷한 것 같다

0개의 댓글