본문 바로가기
Algorithm/Programmers

[Programmers / Level2] 이진 변환 반복하기

by 개복취 2024. 1. 16.

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

 

프로그래머스

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

programmers.co.kr


 

<내 코드>

def binary_transformation(s):
    total_zero, total_cnt = 0, 0
    new_s = list(s)
    while True:
        if new_s == '1': break
        cnt_zero, cnt_one = new_s.count('0'), new_s.count('1')
        total_zero += cnt_zero
        new_s = format(cnt_one, 'b')
        total_cnt += 1
        
    return total_cnt, total_zero
    
def solution(s):
    a, b = binary_transformation(s)
    return [a, b]

 

-> decimal 에서 binary로 만들어줄 때 두가지 방법이 있음

  1. bin(decimal) 내장함수
  2. format(decimal, ‘b’) 형태

bin 내장함수는 '0b' prefix가 붙어버려서 따로 문자열의 조작이 필요하다. 

굳이 binary 형태인지 판단하는 prefix 필요없다면 format 위와 같은 형식으로 작성하면 된다.