on my way
[프로그래머스 코딩테스트 연습] 이진변환 반복하기 (Python3) 본문
반응형
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쓰는게 좋음
반응형
'algorithm > Python' 카테고리의 다른 글
[프로그래머스 코딩테스트 연습] 전화번호 목록 (Python3) (0) | 2025.01.15 |
---|---|
[프로그래머스 코딩테스트 연습] 완주하지 못한 선수 (Python3) (0) | 2025.01.15 |
[프로그래머스 코딩테스트 연습] 3진법 뒤집기 (Python3) (0) | 2025.01.14 |
[프로그래머스 코딩테스트 연습] 이상한 문자 만들기 (Python3) (0) | 2025.01.14 |
[백준 5622번] 다이얼 (Python3, 브론즈2) (0) | 2025.01.13 |