

문제를 살펴보면 맨앞의 카드는 삭제하고 맨앞과 맨뒤의 카드를 서로 바꾸어 가는 과정을 반복하는 것을 알 수 있다
일단 문제를 해결하기 위해 카드의 번호가 저장된 큐를 구현해야한다
이전 문제에서 풀었던 from collectinos import deque를 통해 card를 선언해준다
이후에 for문을 통해 1부터 n까지 순서대로 append 함수로 값을 저장해주고
while문을 이용하여 길이가 1이 될 때까지 제일 위의 카드는 버리고
제일 위에 있는 카드를 제일 아래로 옮기는 과정을 반복한다
card의 길이가 1이 되면 while문을 빠져나오게 되므로 card의 원소를 출력해주면 끝이다
from collections import deque
n = int(input())
card = deque()
for i in range(1, n + 1):
card.append(i)
while len(card) != 1:
card.popleft()
s = card.popleft()
card.append(s)
print(*card)
'Baekjoon' 카테고리의 다른 글
| [Baekjoon]백준 28279 덱 2(실버 4) - Python (0) | 2024.12.01 |
|---|---|
| [Baekjoon]백준 11866 요세푸스 문제 0(실버 4) - Python (0) | 2024.11.30 |
| [Baekjoon]백준 18258 큐 2(실버 4) - Python (2) | 2024.11.28 |
| [Baekjoon]백준 12789 도키도키 간식드리미(실버 3) - Python (0) | 2024.11.27 |
| [Baekjoon]백준 4949 균형잡힌 세상(실버 4) - Python (0) | 2024.11.26 |