https://school.programmers.co.kr/learn/courses/30/lessons/12911
n이 주어졌을 때 n의 다음 큰 숫자를 반환하라.
def solution(n):
tmp = n
while(1):
tmp+=1
if str(bin(n)).count('1') == str(bin(tmp)).count('1'):
return tmp
bin 함수가 있는 건 알았지만 반환 타입을 까먹음. str타입으로, '0b101110'과 같이 반환됨.
그리고 while문 안에서 같은 결과값을 갖는 bin(n).count('1')
연산을 반복적으로 할 필요가 없음.
def solution(n):
cnt = bin(n).count('1')
while(1):
n+=1
if cnt == bin(n).count('1'):
return n
bin이 string으로 반환되기때문에 str()으로 감싸줄 필요 없음
그리고 bin(n).count('1')
을 반복문 바깥으로 빼 불필요한 연산 줄이기