설명
파이썬에서 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
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 짝지어 제거하기 (파이썬) (0) | 2023.03.31 |
---|---|
[프로그래머스] 피보나치 수 (파이썬) (0) | 2023.03.30 |
[프로그래머스] 바탕화면 정리 (파이썬) (0) | 2023.03.07 |
[프로그래머스] 크기가 작은 부분문자열 (0) | 2023.01.03 |
[프로그래머스] 로또의 최고순위와 최저순위 (JAVA) (0) | 2022.03.06 |