[프로그래머스_12911] 다음 큰 숫자 Python 풀이

출처: 프로그래머스

문제

image

풀이

10진수를 2진수를 바꿔주는 decimalToBinary함수를 만들고, check 함수로 n과 1의 개수가 같은 수를 확인해주었습니다.
n+1 부터 check 함수를 거치며 1의 개수가 같은 수를 찾아 바로 return 해주었습니다.

코드

def decimalToBinary(n):
    return "{0:b}".format(int(n))
def check(n, next_n):
    bi_n, bi_next_n = list(decimalToBinary(n)), list(decimalToBinary(next_n))
    n_ones, next_n_ones = len([i for i in bi_n if i == "1"]), len([j for j in bi_next_n if j == "1"])
    return n_ones == next_n_ones
def solution(n):
    for num in range(n+1, 1000001):
        if check(n, num):
            return num

Leave a comment