[Python] 알고리즘/Silver
[18115] 카드 놓기 (Python)
-Becca-
2021. 11. 8. 16:42
[문제]
https://www.acmicpc.net/problem/18115
18115번: 카드 놓기
수현이는 카드 기술을 연습하고 있다. 수현이의 손에 들린 카드를 하나씩 내려놓아 바닥에 쌓으려고 한다. 수현이가 쓸 수 있는 기술은 다음 3가지다. 제일 위의 카드 1장을 바닥에 내려놓는다.
www.acmicpc.net
알고리즘 분류는 자료 구조, 덱 입니다.
덱(deque)은 양방향 큐이므로 앞, 뒤에서 값을 추가할 수 있습니다.
파이썬에서 덱은 from collections import deque를 쓰면 사용 가능합니다.
[코드]
import sys
from collections import deque
N = int(sys.stdin.readline())
li = list(map(int, sys.stdin.readline().split()))
li.reverse()
dq = deque()
for i in range(N):
if li[i] == 1:
dq.appendleft(i + 1)
elif li[i] == 2:
dq.insert(1, i + 1)
elif li[i] == 3:
dq.append(i + 1)
for i in dq:
print(i, end=" ")