백준 2012번 등수 매기기 파이썬

박슬빈·2021년 9월 29일
0

알고리즘

목록 보기
23/40

문제

입력 , 출력

solution

import sys

input = sys.stdin.readline
n = int(input())
arr = [0 for i in range(n)]
for i in range(n):
    arr[i] = int(input())
arr.sort()
res = 0
for i in range(n):
    res += abs(arr[i] - (i + 1))
print(res)

설명

예상 등수를 입력을 받고 정렬을 함
예상 등수가 낮은것 부터 순서대로 등수를 주는것이 불만도가 가장 작다
학생들의 등수가
1 1 1 2 3 4 등이면 순서대로
1 2 3 4 5 6 등으로 주는데
여기서 예상등수 - 등수 를 해주면 1)1,1-2,1-3, 이렇게 음수 가 나오게 되고 반대로 예상등수보다 등수가 높으면 양수가 된다.
그래서 절댓값 abs를 해주면 무조건 양수로 나온다.

후기

증명을 잘 못하겠다.

profile
이것저것합니다

0개의 댓글