본문 바로가기

Algorithm/프로그래머스

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

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

1. 해결방법

이진법으로 표현된 문자열이 주어질 것이다.

이때, 문자열 내의 '0'을 없애줘야 while문을 통해서 반복이 가능하다. 
어떻게 해야할까???

본인은 기억이 안났지만, 파이썬 내장 기능중 replace(a, b)라는 기능이 있다. 문자열 내의 특정 문자를 바꾸는데 사용할 것이다.

그리고 answer에 맞게 값을 카운팅 해주면 된다.

 

 

2. 정답코드

def solution(s):
    answer = []
    s_count, zero = 0, 0
    
    while True:
        if len(s) == 1 and s[0] == '1':
            break
        zero += s.count('0')
        s = s.replace('0', '')
        
        s = bin(len(s))[2:]
        s_count += 1
        
    answer = [s_count, zero]
    return answer