일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Airflow
- delete join
- 프로그래머스
- docker
- Data Engineering
- 2023년 목표
- Pseudo Lab
- data_engineer
- docker image
- Python
- Dynamic Programming
- 데이터 엔지니어
- terraform
- docker container
- MySQL
- 빅데이터를 지탱하는 기술
- 그리디
- leetcode
- 백준 온라인 저지
- hackerrank
- 알고리즘
- telegram
- Spark
- BOT
- 백준온라인저지
- SQL
- airflow webserver
- dsf
- airflow architecture
- datacamp
Archives
- Today
- Total
Lim Seunghyun Space
[백준 온라인 저지] 등수 매기기 본문
문제 정의
- 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로 제출했다.
- 실제로 https://www.acmicpc.net/problem/2012 의 예제 입력 1인 (5 1 5 3 1 2)는 Python으로 실행시 7초 정도 소요되고 있다.
Github : https://github.com/Limseunghyun95/code_test/blob/master/baekjoon/p_2012.py
728x90
'Algorithm > 문제' 카테고리의 다른 글
[백준 온라인 저지] 01타일 (0) | 2021.11.11 |
---|---|
[백준 온라인 저지] 유기농 배추 (0) | 2021.11.10 |
[백준 온라인 저지] 근우의 다이어리 꾸미기 (0) | 2021.10.31 |
[백준 온라인 저지] 뒤집기 (0) | 2021.10.26 |
[프로그래머스] 체육복 (0) | 2021.10.17 |