개발/algorithm
[프로그래머스][level2] 다음 큰 숫자 - python
zzi_on2
2022. 2. 8. 17:02
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12911
코딩테스트 연습 - 다음 큰 숫자
자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니
programmers.co.kr
풀이
- 이분 탐색으로 풀어야 되나 싶었는데 완전 탐색으로도 통과
- n+1 부터 1씩 증가 시켜주면서 이진수에서 1의 개수가 동일하면 중단
def solution(n):
answer = 0
b = str(format(n, 'b')).count('1')
for i in range(n+1, 1000000):
if str(format(i, 'b')).count('1')== b:
answer = i
break
return answer