DevKim

[Python] 프로그래머스 Lv.2 - 이진 변환 반복하기 본문

알고리즘 PS

[Python] 프로그래머스 Lv.2 - 이진 변환 반복하기

on_doing 2021. 2. 11. 20:50
728x90

programmers.co.kr/learn/courses/30/lessons/70129

 

코딩테스트 연습 - 이진 변환 반복하기

 

programmers.co.kr

[ 알고리즘 ]

구현

 

[문제 접근]

파이썬의 문자열 핸들링에 한번 더 감탄한 문제. 파이썬은 문자열을 다루는데에 정말 특화된 것 같다

replace를 이용하여 0을 모두 없애주고 이진법으로 변환 반복,

 

[코드]

def solution(s):

    cnt1=0
    cnt2=0
    while s!='1':
        cnt2+=s.count('0')
        s=s.replace('0','') #0없앰
        n=len(s)
        s=''
        while n!=0:
            s=str(n%2)+s
            n=n//2
        cnt1+=1
        
    answer=[cnt1, cnt2]
        
    return answer #이진 변환의 횟수, 과정 중 제거된 모든 0의 개수
728x90
Comments