본문 바로가기
코딩테스트/파이썬

[프로그래머스] 다음 큰 숫자(level 2) (파이썬)

by 커피는아아 2021. 5. 18.
반응형

접근

  • 2진수로 변환 하는 함수를 알아야했다 (bin이나 format 방식을 이용한다)
  • 숫자를 하나 씩 늘려가며 일치할 시에 반복문을 빠져나오면 된다.
# 다음 큰 숫자
# https://programmers.co.kr/learn/courses/30/lessons/12911

# 3시 8분 - 3시 25분 (17분)
def solution(n):
    
    b_origin = str(format(n, 'b'))
    b_count = b_origin.count('1')
    
    num = n
    while True:
        num += 1
        v = str(format(num, 'b'))
        if v.count('1') == b_count:
            return num

def solution2(n):
    
    cnt = format(n, 'b').count('1')
    
    while True:
        n += 1
        if format(n, 'b').count('1') == cnt:
            return n


def solution3(n):
    cnt = bin(n).count('1')

    while True:
        n = n + 1
        if bin(n).count('1') == cnt:
            break
    return n