이진 변환 반복하기 - Python

2023. 10. 14. 07:56공부/📝 프로그래머스

1. 풀이 코드

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


# Test Cases
print(solution("110010101001"))
print(solution("01110"))
print(solution("1111111"))

  차근차근 풀었습니다.

 

2. 다른 사람 풀이 코드

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]

  저랑 비슷하면서도 다른 풀이입니다. 인상깊네요.

 


 

프로그래머스

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

programmers.co.kr

 

'공부 > 📝 프로그래머스' 카테고리의 다른 글

삼총사 - Python  (0) 2023.10.14
예산 - Python  (0) 2023.10.14
올바른 괄호 - Python  (0) 2023.10.14
최솟값 만들기 - Python  (0) 2023.10.14
JadenCase 문자열 만들기 - Python  (0) 2023.10.14