Problem Solving/Online Judge

[BOJ] #2012 - 등수 매기기

se0m 2021. 6. 25. 14:08
 

2012번: 등수 매기기

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

www.acmicpc.net

 

 

** 문제 유형

  • 그리디

 

** 풀이

  1. 예상 등수와 실제 등수의 차이를 최소화해야 함
  2. 그 방법으로 예상된 등수를 오름차순으로 정렬하면 됨

 

n = int(input())

array = [] # 예상 등수
answer = 0 # 불만도의 합

for _ in range(n):
    array.append(int(input()))

array.sort() # 오름차순 정렬 수행

for i in range(1, n + 1):
    answer += abs(i - array[i - 1])

print(answer)