PS/백준

[Python] 2012번 등수 매기기

s_omi 2024. 7. 19. 09:42

✏️ 문제

 

문제 파악

문제 그대로 불만도를 최소를 하기 위해선 본인이 원하는 등수와 많이 차이나면 안되므로 차례대로 정렬해준다.

그 후 예상 등수와 실제 등수를 빼서 절댓값을 불만도에 더해주면 된다.

 

이때 그냥 input()을 쓴 상태로 하면 시간 초과가 뜨므로 sys input()을 쓰든가 언어를 python3 대신 pypy3를 쓰면 같은 코드라도 통과된다!!

 

알고리즘

  • 그리디 알고리즘
  • 정렬

 

 

코드

import sys
input = sys.stdin.readline

n = int(input())
ary = []
dis = 0

for i in range(n):
  ary.append(int(input()))

ary.sort()

for i in range(n):
  if ary[i] != i+1:
    dis += abs(ary[i] - (i+1))

print(dis)