목차

다음 큰 숫자

ps
링크programmers.co.kr/…
출처프로그래머스
문제 번호12911
문제명다음 큰 숫자
레벨Level 2
분류

애드혹

시간복잡도O(logn)
인풋사이즈n <= 1,000,000
사용한 언어Python
해결날짜2021/07/15

풀이

코드

"""Solution code for "Programmers 12911. 다음 큰 숫자".

- Problem link: https://programmers.co.kr/learn/courses/30/lessons/12911
- Solution link: http://www.teferi.net/ps/problems/programmers/12911
"""


def solution(n):
    shift = one_count = 0
    while n & 3 != 1:
        one_count += (n & 1)
        shift += 1
        n >>= 1
    answer = ((n + 1) << shift) + (1 << one_count) - 1
    return answer