알고리즘 풀이/프로그래머스

[Level 2] 이진 변환 반복하기

mhko411 2021. 3. 27. 21:49
728x90

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

 

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

 

programmers.co.kr


접근

문제에서 주어진대로 구현하는데에 중점을 두었다.

 

구현

먼저 num이라는 변수에 입력된 이진수를 대입한다.

그리고 while문으로 반복을 진행하게 된다.

num을 탐색하면서 1이면 copy_num에 넣고 아니라면 answer의 1번 인덱스의 수를 증가시킨다.

 

탐색이 종료되었다면 copy_num의 길이를 다시 이진수로 변환하여 num에 대입한다.

위의 과정을 num이 1일 될 때까지 반복한다.

def solution(s):
    answer = [0, 0]
    num = s
    while True:
        copy_num = ''
        for i in range(len(num)):
            if num[i] == '1':
                copy_num += num[i]
            else:
                answer[1] += 1
        num = bin(len(copy_num))[2:]
        answer[0] += 1
        if num == '1':
            break
    return answer

'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

[Level 2] 위장  (0) 2021.03.30
[Level 3] 입국심사  (0) 2021.03.29
[Level 2] 문자열 압축  (0) 2021.03.25
[Level 2] 메뉴 리뉴얼  (0) 2021.03.24
[Level 2] 방문 길이  (0) 2021.03.23