카테고리 없음

2164 카드2

ylab 2023. 3. 22. 01:17

https://www.acmicpc.net/problem/2164

 

2164번: 카드2

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net

from collections import deque

#큐를 선언하고 주어진대로 구현하면 된다. 그리고 덱을 부르는 이유는 popleft()쓰려고!!
#즉 큐안에 1개가 남았을 때 그 값을 출력하는 것이 문제포인트!!
n = int(input())
q= []

for i in range(n):
    q.append(i+1)
    
que = deque(q)
#반례로 길이 1자리 들어오면 출력하고 종료
if len(que)==1:
    print(que.popleft())
    exit(0)
#que의 길이가 1이 될때까지
while 1:
    #맨위에꺼 버려
    que.popleft()
    #그다음꺼 뒤에붙혀
    a=que.popleft()
    que.append(a)
    if len(que)==1:
        break
    
print(que.popleft())