https://www.acmicpc.net/problem/24511
큐와 스택의 자료구조를 합쳐놓았을 때 프로그램이 어떻게 작동하는지 묻는 문제이다.
스택인 부분에 값이 추가되면 어차피 그 추가된 값이 pop되므로 스택은 없는셈 쳐서 문제를 해결할 수 있다.
큐는 여러개의 큐가 마치 하나의 큐인것 마냥 작동되는 기이한 현상이 일어난다.
(사고가 어렵다면 직접 써보는것도 좋다)
결론적으로 이 문제는 스택인 부분의 숫자는 무시하고 여러개의 큐를 하나의 큐처럼 생각하면 문제를 해결할 수 있다.
코드는 다음과 같다.
import sys
from collections import deque
input = sys.stdin.readline
N = int(input())
sequence_A = list(map(int, input().split())) ## queue == 0, stack == 1
sequence_B = list(map(int, input().split())) ## i번 자료구조에 들어있는 원소
M = int(input()) ## 삽입할 수열의 길이
sequence_C = list(map(int, input().split())) ## 삽입할 수열
## 스택은 무시하고 큐만 deque에 추가하기
queue = deque([])
for i in range(N):
if sequence_A[i] == 0:
queue.appendleft(sequence_B[i])
else:
if queue == []:
print(*sequence_C)
sys.exit()
## deque가 하나의 큐 처럼 작동
for i in range(M):
queue.append(sequence_C[i])
print(queue.popleft(), end = " ")
글이나 코드에 대한 조언 모두 환영합니다!
'📚알고리즘 > 백준' 카테고리의 다른 글
[백준 1074번] Z (Python/파이썬) (1) | 2023.03.15 |
---|---|
[백준 2630번] 색종이 만들기(Python/파이썬) (0) | 2023.03.15 |
[백준 1715번] 카드 정렬하기 (Python/파이썬) (0) | 2023.02.22 |
[백준 5525번] IOIOI (Python/파이썬) (0) | 2023.02.22 |
[백준 7576번] 토마토 (Python/파이썬) (0) | 2023.02.19 |