Lim Seunghyun Space

[백준 온라인 저지] 등수 매기기 본문

Algorithm/문제

[백준 온라인 저지] 등수 매기기

Lim Seung Hyun 2021. 10. 26. 17:12

문제 정의

  • N명의 학생들의 예상 등수와 실제 등수 간의 차이 합이 최소가 되도록 한다.
  • 예상 등수와 실제 등수 간의 차이는 절대값으로 계산한다.
  • 1등부터 N등까지 같은 등수는 없다.

 

나의 풀이

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

N = int(input())
ranks = []

answer = 0

for _ in range(N):
    ranks.append(int(input()))

for index, rank in enumerate(sorted(ranks)):

    answer += abs((index + 1) - rank)

print(answer)
  • 예상 등수와 실제 등수 간의 차이가 최소가 되어야 하므로, 예상 등수를 오름 차순으로 정렬하여 예상 등수와 실제 등수 차이를 계산했다.
  • List의 인덱스는 0부터 시작하기 때문에 계산시 인덱스 + 1를 해주어 문제를 해결했다.
  • 위의 문제는 Python3로 제출하면 시간 초과가 되기 때문에 PyPy3로 제출했다.

 

Github : https://github.com/Limseunghyun95/code_test/blob/master/baekjoon/p_2012.py

728x90