문제 확인
나의 풀이
- 완전 탐색을 활용해서 풀었다.
- 이 경우 시간 복잡도는 $N$ * $((\log C + C)) \times C$이다.
- $C$가 대략 $\log_{2}{10^6} = 20$ 정도라서 시간 초과가 발생하진 않는다.
# 다음 큰 숫자 : 'n보다 크고, 2 진수 표현에서 1의 갯수가 같은 수' 중에서 가장 작은 숫자
# 시간 복잡도 : n * ((logc + c) * c)
def solution(n):
n_cnt = bin(n)[2:].count("1")
check = n + 1
while True:
if bin(check)[2:].count("1") == n_cnt:
return check
check += 1