동캄의 코딩도장

프로그래머스 level2 [다음 큰 숫자] 파이썬 본문

코테/프로그래머스

프로그래머스 level2 [다음 큰 숫자] 파이썬

동 캄 2021. 12. 2. 09:11

https://programmers.co.kr/learn/courses/30/lessons/12911

 

코딩테스트 연습 - 다음 큰 숫자

자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니

programmers.co.kr

#프로그래머스 다음 큰 숫자

def solution(n):
    bit=list(map(int,bin(n)[2:]))
    one_cnt=bit.count(1)
    i=n+1
    while True:
        cnt=list(map(int,bin(i)[2:])).count(1)
        if cnt==one_cnt:
            break
        i+=1
    answer=i
    return answer

되게 어렵게 생각했었는데 생각보다 간단한 문제였다. 

각 숫자를 1씩 증가시켜가며 1의 개수를 비교해 나가면 되었다.