[ BOJ / Python ] 2002번 추월

황승환·2022년 3월 8일
0

Python

목록 보기
232/498


이번 문제는 딕셔너리를 사용하여 해결하였다. 우선 터널에 들어가는 차들을 딕셔너리에 {이름: 순번}으로 저장한다. 그리고 터널을 나오는 차들을 리스트로 저장한다. 이제 2중 for문을 사용하여 터널을 나오는 차들의 리스트에서 현재 차보다 뒤에 있는 차 중, 현재 차보다 딕셔너리의 value가 작은 것이 있을 경우에 현재 차가 추월한 것이므로 정답 변수를 증가시켜주었다.

  • n을 입력받는다.
  • 터널에 들어가는 차들을 관리할 딕셔너리 inside를 선언한다.
  • 터널을 나오는 차들을 관리할 리스트 outside를 선언한다.
  • 차들의 순번을 부여할 변수 idx를 0으로 선언한다.
  • n번 반복하며 inside에 {차의 이름: idx}형식으로 입력하고, idx를 1씩 증가시킨다.
  • n번 반복하며 outside를 입력받는다.
  • 정답을 저장할 변수 answer를 0으로 선언한다.
  • n-1번 반복하는 i에 대한 for문을 돌린다.
    -> i+1부터 n까지 반복하는 j에 대한 for문을 돌린다.
    --> 만약 inside[outside[i]]inside[outside[j]]보다 클 경우, answer를 1 증가시키고 반복문을 탈출한다.
  • answer를 출력한다.

Code

n=int(input())
inside={}
outside=[]
idx=0
for _ in range(n):
    inside[str(input())]=idx
    idx+=1
for _ in range(n):
    outside.append(str(input()))
answer=0
for i in range(n-1):
    for j in range(i+1, n):
        if inside[outside[i]]>inside[outside[j]]:
            answer+=1
            break
print(answer)

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글