Posts [알고리즘] 프로그래머스 - 이진 변환 반복하기
Post
Cancel

[알고리즘] 프로그래머스 - 이진 변환 반복하기


문제

이진 변환 반복하기


접근

s에 1이 몇개 포함되어 있는지 확인해주면 된다.
s의 길이 - 1의 개수만큼이 0의 개수이므로 한번 s를 변환할 때마다 0의 개수를 카운팅해서 더해주고,
1의 개수로 다시 s를 생성한다.


코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def solution(s):
    answer = [0,0]
    while s != '1':
        oneCnt = 0
        for item in s:
            if item == '1':
                oneCnt+=1
        answer[1] += len(s) - oneCnt
        tmp = ''
        while oneCnt != 0:
            tmp = str(oneCnt % 2) + tmp
            oneCnt //= 2
        s = tmp
        answer[0] += 1
    return answer


This post is licensed under CC BY 4.0 by the author.

[알고리즘] 프로그래머스 - 소수 찾기

[알고리즘] 프로그래머스 - 올바른 괄호