[Python][프로그래머스 Lv.2] 다음 큰 숫자

1jinju·2023년 9월 25일
0

프로그래머스

목록 보기
7/14

다음 큰 숫자

def solution(n):
    one = str(bin(n)).count('1')
    while True:
        n += 1
        if one == str(bin(n)).count('1'):
            break
    return n
one = bin(n).count('1')

위처럼 고쳐도 결과는 같음

다른 사람의 풀이

def solution(n):
    b = bin(n)
    b0 = b.rstrip('0')
    b1 = b0.rstrip('1')
    
    # 연속된 0의 개수와 연속된 1의 개수를 계산
    chk0 = len(b) - len(b0)
    chk1 = len(b0) - len(b1)
    
    #세 값(n+1, 연속된 0을 1로 바꾼 이진수, 연속된 1을 0으로 바꾼 이진수)을 모두 더하여 반환
    return n + 1 + int('0b0'+'1'*chk0, 2) + int('0b0'+'1'*(chk1-1), 2)
profile
아자잣

0개의 댓글