백준 / 카드2 / 2164

Question

문제링크
Silver 4

Logic

기본 구조 : queue
1. 카드 갯수에 따라 카드 배열을 생성한다ㅏ.
2. 카드는 한장을 버리고 한장을 아래로 내린다. 따라서 카드의 짝수 번만 남게 될 것이다. 하지만 카드 갯수가 홀수 개일 경우, 1회전을 진행하면 짝수 번 카드 + 마지막 카드만 남게 될것이다.
3. 리스트 슬라이싱을 이용해 두 경우를 구현한다.
4. 카드 장수가 2장이하라면 마지막 카드를 출력한다.

Code

from sys import stdin

N = int(stdin.readline().strip())
queue = [i+1 for i in range(N)]

while(len(queue)>2):
    if len(queue)%2==0:
        queue = queue[1::2]
    else:
        queue = [queue[-1]]+queue[1::2]

print(queue[-1])

좋은 웹페이지 즐겨찾기