코딩테스트

[백준][Python] 2002 추월

yeeejji 2024. 3. 23. 17:47
728x90

구현 / 실버 1

🚨

https://www.acmicpc.net/problem/2002

 

2002번: 추월

입력은 총 2N+1개의 줄로 이루어져 있다. 첫 줄에는 차의 대수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 대근이가 적은 차량 번호 목록이 주어지고, N+2째 줄부터 N개의 줄에는 영식이

www.acmicpc.net

 

 

내 풀이

N = int(input())
enter = [] # 차가 터널에 들어가는 순서대로
exit = [] # 차가 터널에서 나오는 순서대로
ans = 0

for _ in range(N):
    enter.append(input())

for _ in range(N):
    exit.append(input())

for i in exit:
    if i != enter[0]: # 차가 들어간 순서와 나오는 순서 불일치
        ans += 1
        enter.remove(i)

    else: # 일치
        enter.pop(0)

print(ans)

 

 

코드 설명

 

enter 리스트에 차량 번호를 터널에 들어가는 순서대로 추가한다.

exit 리스트에 차량 번호를 터널에서 나오는 순서대로 추가한다.

for _ in range(N):
    enter.append(input())

for _ in range(N):
    exit.append(input())

 

들어간 순서와 나온 순서가 불일치하는 경우, 추월을 한 것이므로 정답(ans) += 1 !

검사한 차량 번호는 삭제해 준다.

for i in exit:
    if i != enter[0]: # 차가 들어간 순서와 나오는 순서 불일치
        ans += 1
        enter.remove(i)

    else: # 일치
        enter.pop(0)

 

상세 설명

 

딕셔너리를 이용하여 풀 수도 있던데, 나한테는 그 방법이 더 어렵게 느껴졌다.