반응형
https://www.acmicpc.net/problem/2002
소스코드
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
check = []
cnt = 0
enter = deque(input().strip() for _ in range(n))
out = deque(input().strip() for _ in range(n))
while out:
if enter[0] in check:
enter.popleft()
else:
k = out.popleft()
if k != enter[0]:
cnt += 1
check.append(k)
else:
enter.popleft()
print(cnt)
풀이
★ 터널에 들어가는 순서와 나오는 순서가 다른 차들을 확인해주면서 추월한 차가 총 몇대인지 확인해줬습니다 ! 이 때 큐룰 사용하여 이미 확인한 차들은 큐에서 제거해줬습니다.
★ 반복문은 나온 차들을 다 확인할 때까지 수행하는데, 들어간 차가 check라는 배열(추월한 차)에 있으면 확인할 필요가 없기에 제거해준 뒤 넘어갑니다. 아닌 경우, 나온 차와 들어간 차의 순서가 일치하는지 확인해줍니다 :)
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준 알고리즘] 30974번: What's your ETA? (Python) (2) | 2024.01.11 |
---|---|
[백준 알고리즘] 5590번: 船旅 (Python) (0) | 2023.12.20 |
[백준 알고리즘] 13911번: 집 구하기 (Python) (1) | 2023.12.18 |
[백준 알고리즘] 14618번: 총깡 총깡 (Python) (1) | 2023.12.09 |
[백준 알고리즘] 23801번: 두 단계 최단 경로2 (Python) (2) | 2023.12.08 |