코드
import sys
input = sys.stdin.readline
N = int(input())
ans = 0
inOrd = []
outOrd = []
for _ in range(N):
inOrd.append(input().rstrip())
for _ in range(N):
outOrd.append(input().rstrip())
for i in range(N):
car = inOrd[i]
frontCars = inOrd[:i]
backCars = outOrd[outOrd.index(car):]
if len(frontCars) + len(backCars) > len(set(frontCars + backCars)):
ans += 1
print(ans)
결과
풀이 방법
- 분류:
문자열
- 추월이라고 판단하는 기준: 들어올 때 X 앞에 있던 차들 중 하나의 차라도 나올 때 X 뒤에 있으면 X가 해당 차를 추월한 것이다
- 들어올 때 X 앞에 있던 차들을 frontCars, 나올 때 X 뒤에 있던 차들을 backCars 리스트에 저장하였다.
- 만약 추월한 차가 없다면 len(frontCars) + len(backCars) == len(set(frontCars + backCars))일 것이고, 추월한 차가 있다면 set(frontCars + backCars)에서 중복값이 제거되므로 길이가 다를 것이다.