

처음에는 for문 이중으로 풀어 하나하나 계산했더니 계속 시간초과가 나왔다.sys로 받아주고 ans로 미리 답 리스트로 만들었음 ! (사실 dict로 만들까 고민)
ans에 받은 기말고사의 등수를 중간고사의 등수의 시각에서 인덱스로 새로 리스트를 만들었다. 그리고 i+1(1,2,3,4,5)에서 빼주면 됨 !!
솔직히 문제 이해보다는 입력을 어떻게 받았는지 이해하면 된다.. 🐾
기말고사 기준으로 들어오는데 중간고사 등수 기준으로 고치면 됩니더
반례를 보면 더 이해가 쉽다
import sys
N = int(input())
ans=[0]*N
final = list(map(int,sys.stdin.readline().split()))
for i in range(N):
ans[i]=final.index(i+1)+1
print((i+1)-ans[i])
질문게시판에 나와있는 반례
5
2 5 4 1 3
정답 :
-3 1 -2 1 3
이 등수입력은 들어온 등수를 중간고사에 맞추면 인덱스(중간등수)에 맞게 4 1 5 3 2 가 된다. 중간고사 1등은 기말고사때 4등, 중간고사 2등은 1등, 중간고사 3등은 기말고사 5등 .. 등등