def solution(n):
one = str(bin(n)).count('1')
while True:
n += 1
if one == str(bin(n)).count('1'):
break
return n
one = bin(n).count('1')
위처럼 고쳐도 결과는 같음
def solution(n):
b = bin(n)
b0 = b.rstrip('0')
b1 = b0.rstrip('1')
# 연속된 0의 개수와 연속된 1의 개수를 계산
chk0 = len(b) - len(b0)
chk1 = len(b0) - len(b1)
#세 값(n+1, 연속된 0을 1로 바꾼 이진수, 연속된 1을 0으로 바꾼 이진수)을 모두 더하여 반환
return n + 1 + int('0b0'+'1'*chk0, 2) + int('0b0'+'1'*(chk1-1), 2)