on my way

[프로그래머스 코딩테스트 연습] 이진변환 반복하기 (Python3) 본문

algorithm/Python

[프로그래머스 코딩테스트 연습] 이진변환 반복하기 (Python3)

wingbeat 2025. 1. 14. 21:06
반응형

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

# 1트
def solution(s):
    cnt0, cntR = 0, 0
    while s != "1":
        cntR += 1
        zero = len([1 for d in s if d == "0"])
        cnt0 += zero
        s = format(len(s) - zero, 'b')
    return cntR, cnt0

# 리팩토링
def solution(s):
    cnt0, cntR = 0, 0
    while s != "1":
        cntR += 1
        cnt0 += s.count("0") 
        s = bin(len(s.replace("0","")))[2:]
    return cntR, cnt0

 

count함수를 까먹음

그리고 새로 변수 생성하는거보다 그냥 연산하는게 메모리 측면에서 좋다고 함.

 

format보다 bin()[2:] 가 간단하다고 함. 다만 포맷 형식 지정시 format쓰는게 좋음

반응형