백준|2012번|등수 매기기

README·2022년 7월 31일
0

파이썬 PS풀이

목록 보기
15/136

문제설명
예상 등수들을 입력받아서 예상 등수와 실제 등수의 차이를 불만도라 할 때, 최소의 불만도를 구하는 문제입니다.
(불만도 예시: |예상등수 1등-실제 등수 2등|=1)

작동 순서
1.입력받을 등수의 개수를 입력받습니다.
2.예상 등수들을 순서대로 입력받습니다.
3.예상 등수들을 정렬하여 높은 예상등수들을 앞자리에 배치합니다.
4.각 자리의 예상등수들과 실제등수들의 차이를 sum에 더합니다.
5.불만도를 출력합니다.

소스코드

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

후기
처음에 예상 등수들을 입력받을 때 input문을 사용하였더니 계속해서 시간초과 오류가 났었는데 그로인해서 sys.stdin.readline문법을 찾아보게 되었고 이를 통해 문제를 해결하게 되었습니다. 똑같은 프로그램을 코딩하더라도 사용하는 문법등에 따라서 성능에 차이가 생길 수 있다는 것을 알게된 것 같습니다.

profile
INTP 개발자 지망생

0개의 댓글