728x90
BOJ 24511 queuestack
문제
한가롭게 방학에 놀고 있던 도현이는 갑자기 재밌는 자료구조를 생각해냈다.
그 자료구조의 이름은 queuestack이다.
queuestack의 구조는 다음과 같다. 1번, 2번, ... , N번의 자료구조(queue 혹은 stack)가 나열되어있으며,
각각의 자료구조에는 한 개의 원소가 들어있다.
queuestack의 작동은 다음과 같다.
도현이는 길이 M의 수열 C를 가져와서 수열의 원소를 앞에서부터 차례대로 queuestack에 삽입할 것이다.
이전에 삽입한 결과는 남아 있다. (예제 1 참고)
queuestack에 넣을 원소들이 주어졌을 때, 해당 원소를 넣은 리턴값을 출력하는 프로그램을 작성해보자.
시간 제한 : 1 초 (추가 시간 없음)
메모리 제한 : 1024 MB (추가 메모리 없음)
입력
출력
수열 C의 원소를 차례대로 queuestack에 삽입했을 때의 리턴값을 공백으로 구분하여 출력한다.
예제 입력 1
4
0 1 1 0
1 2 3 4
3
2 4 7
각 상태에 대한 큐스택 내부를 표현하면 다음과 같다.
- 초기 상태 :
- 첫 번째 원소 삽입 :
- 두 번째 원소 삽입 :
- 세 번째 원소 삽입 :
예제 출력 1
4 1 2
예제 입력 2
5
1 1 1 1 1
1 2 3 4 5
3
1 3 5
예제 입력 2
1 3 5
풀이
import sys
from collections import deque
input = sys.stdin.readline
queue = deque()
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
for i in range(n):
if a[i] == 0:
queue.appendleft(b[i])
m = int(input())
arr = list(map(int, input().split()))
for i in arr:
queue.append(i)
print(queue.popleft(), end=" ")
728x90
'Algorithm(Python) > 큐' 카테고리의 다른 글
[Algorithm] 백준 BOJ 12873 기념품(python 파이썬) (1) | 2022.10.18 |
---|---|
[Algorithm] 백준 BOJ 14713 앵무새(python 파이썬) (0) | 2022.10.17 |
[Algorithm] 백준 BOJ 3078 좋은 친구(python 파이썬) (0) | 2022.10.16 |
[Algorithm] 백준 BOJ 5464 주차장(python 파이썬) (0) | 2022.10.15 |
[Algorithm] 백준 BOJ 15828 Router(python 파이썬) (0) | 2022.10.14 |