count 함수를 사용하면 굳이 반복문을 쓰지 않아도 깔끔하게 표현할 수 있다
개수가 필요한 문제라면 count 함수 떠올리기
다음 큰 수를 찾기 위해 반복문을 사용한다
n보다 큰 수여야 하므로 n+1부터 시작하고, 제한 사항에서 n은 1,000,000이하의 자연수라고 했으니 1,000,001 전까지 돌면 된다
반복문 안에서 n이 가진 1의 개수와 bin(i)가 가진 1의 개수가 똑같으면 그 자연수를 출력하고 종료한다.
def solution(n):
answer = 0
# n을 이진수로 변환
bin_num = bin(n)[2:]
# 1의 개수
cnt = bin_num.count('1')
for i in range(n+1, 1000001):
if bin(i).count('1') == cnt:
answer = i
break
return answer