🔗 Problem Link
https://www.acmicpc.net/problem/24511
❔Thinking
- N개의 자료구조에 주어지는 숫자를 차례로 append하고 pop한 숫자를 다시 append하여 최종 pop한 숫자를 출력한다.
- 1은 스택을, 0은 큐를 의미한다.
- M개의 숫자를 차례로 append하기 때문에, 최종 출력하는 숫자는 공백을 사이에 둔 M개의 숫자이다.
💻Solution
import sys
input = sys.stdin.readline
N = int(input().rstrip())
A = list(input().split())
B = list(input().split())
result = [b for a, b in zip(A,B) if a == '0'][::-1]
M = int(input().rstrip())
result.extend(list(input().split()))
# 결과 출력
print(' '.join(result[:M]))
🗝️keypoint
- 스택은 append하고 pop한 숫자가 원래의 숫자와 같기 때문에, 고려하지 않아도 된다.
- 큐의 append와 pop을 반복하는 일은, 주어진 모든 큐를 하나의 큐로 합하여 생각하는 것과 같다.
- a = [1,2,3], b = [4,5,6]을 하나의 큐로 합치면 a_b = [1,2,3,4,5,6]과 동일하다.
'코딩테스트' 카테고리의 다른 글
그래프의 사이클 판별 (0) | 2023.08.02 |
---|---|
그래프 표현 (0) | 2023.08.01 |