프로그래머스
[프로그래머스] 다음 큰 숫자 (파이썬)
sami355
2023. 3. 30. 16:01
설명
파이썬에서 10진수의 값을 2진수로 바꾸는 bin() 함수와 [string].count(str) 함수에 대해서 알고 있으면 쉽게 풀리는 문제였다.
먼저 조건 1을 만족하기 위해 n초과 하는 수부터 시작해서 끝을 정해두지 않고 무한반복을 한다. 그리고 초과하는 수에 대해서 bin()함수를 통해서 이진수로 변경을 하고 입력받은 n에 대해서 n.count('1')을 통해 문자 1의 갯수와 현재 증가 값에 대한 answer.count('1')를 하여 만약 일치한다면 정답이라 판단하여 반환한다.
코드
def solution(n):
answer = 0
count_n_one = bin(n)[2:].count('1')
while True:
n = n + 1
answer = n
count_answer_one = bin(answer)[2:]
if count_n_one == count_answer_one.count('1'):
return answer