[프로그래머스_12911] 다음 큰 숫자 Python 풀이
출처: 프로그래머스
문제
풀이
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