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