링크 : https://www.acmicpc.net/problem/2164
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
- 문제
- 소요시간: 8분 26초



- 설계하기(접근방법)
1. n 을 입력받고, 1부터 n까지의 큐를 선언한다
2. 알고리즘 해석
1) que의 popleft()를 진행해서
[1, 2, 3, 4]
->
[2, 3, 4]로 만든 후
한번 더 popleft()후 append하여
[3, 4, 2] 로 변경해준다.
이 것을 큐의 길이가 1이될때까지 반복한 후, 그것을 출력한다
- 코드(출력)
from collections import deque
n = int(input())
que = deque([i for i in range(1, n + 1)])
while (len(que) != 1):
que.popleft()
que.append(que.popleft())
print(que[0])
- 얻어갈 부분
1. 시간이 더 걸린 이유 : i for i in range()로 deque를 선언할 때 범위를 (1, n+1)로 지정해야 하는데, n으로 지정하여 리스트가 [0,1,2... n-1]로 선언되었다.
'알고리즘(백준) > 자료구조' 카테고리의 다른 글
| [알고리즘/1935] 번 : 후위 표기식2 - python (0) | 2023.03.06 |
|---|---|
| [알고리즘/자료구조] 10866번 : 덱 - python (0) | 2023.03.05 |
| [알고리즘/자료구조] 1158번 : 요세푸스 문제 - python (0) | 2023.03.04 |
| [알고리즘/자료구조] 18258 번 : 큐 2 - python (0) | 2023.03.04 |
| [알고리즘/자료구조] 9012번 : 괄호- python (0) | 2023.03.03 |