728x90
반응형
def binary_change(x):
b = ''
while x > 0:
y1, y2 = divmod(x, 2)
x = y1
b += str(y2)
return b[::-1]
def solution(n):
answer=0
one_count = binary_change(n).count('1')
while n:
n+=1
n_bin = binary_change(n)
if one_count == n_bin.count('1'):
answer = n
break
return answer
문제의 조건에 맞추어 함수를 작성였다.
binary_change는 십진수를 이진수를 변환하는 코드.
solution은 기존의 n 에서 1씩 더해서 이진수로 변환하여 '1'의 개수를 세고, 처음 n일 때의 이진수의 '1'의 개수와 동일한지 확인하는 과정을 무한 반복하다가 이진수 일 때 '1'의 개수가 동일한게 등장하면 종료.
728x90
반응형
'파이썬 알고리즘 코딩' 카테고리의 다른 글
탐색 알고리즘 BFS(Breath-first search)와 DFS(Depth-first search) (0) | 2021.03.13 |
---|---|
N으로 표현 (프로그래머스 Lv3 동적프로그래밍) (0) | 2021.01.25 |
쿼드압축 후 개수 세기 (프로그래머스 level2) (0) | 2020.11.04 |
삼각달팽이 (프로그래머스 level2) (0) | 2020.11.04 |
더맵게(프로그래머스 level 2) (0) | 2020.10.26 |
댓글