목차

카드2

ps
링크acmicpc.net/…
출처BOJ
문제 번호2164
문제명카드2
레벨실버 4
분류

요세푸스 문제

시간복잡도O(1)
사용한 언어Python
제출기록29200KB / 76ms
최고기록52ms
해결날짜2021/08/05

풀이

코드

코드 1 - 공식을 사용

"""Solution code for "BOJ 2164. 카드2".

- Problem link: https://www.acmicpc.net/problem/2164
- Solution link: http://www.teferi.net/ps/problems/boj/2164
"""


def main():
    N = int(input())  
    answer = ~(1 << N.bit_length()) & (N << 1)
    if answer == 0:
        answer = N
    print(answer)


if __name__ == '__main__':
    main()

코드 2 - Deque로 시뮬레이션

"""Solution code for "BOJ 2164. 카드2".

- Problem link: https://www.acmicpc.net/problem/2164
- Solution link: http://www.teferi.net/ps/problems/boj/2164
"""

import collections


def main():
    N = int(input())
    deq = collections.deque(range(1, N + 1))
    while deq:
        discarded_card = deq.popleft()
        deq.rotate(-1)
    print(discarded_card)


if __name__ == '__main__':
    main()