프로그래밍/Algorithm

백준 2012 파이썬**

모지사바하 2021. 11. 8. 16:34

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

 

2012번: 등수 매기기

첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다.

www.acmicpc.net

 

import sys
N = int(sys.stdin.readline())

R = []
for _ in range(N):
    R.append(int(sys.stdin.readline()))

R.sort()
ans = 0
for i in range(1, N + 1):
    ans += abs(i - R[i - 1])

print(ans)

 

간단하게 생각하면 될 문제인데, 첫단추를 잘못끼워서 그런지 많이 헤맸다.

 

 

1. 받은 등수를 모두 정렬한다.

 

2. 1 부터 N 등까지 순회하며 차이나는 등수의 절댓값을 구해 누적한다.