츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 2535번 아시아 정보올림피아드 파이썬(Python)
1) 문제번호 : 2535번
2) 문제 출처
https://www.acmicpc.net/problem/2535
2. 문제
최근 아시아 지역의 학생들만 참여하는 정보 올림피아드 대회가 만들어졌다. 이 대회는 온라인으로 치러지기 때문에 각 나라에서 이 대회에 참여하는 학생 수의 제한은 없다.
참여한 학생들의 성적순서대로 세 명에게만 금, 은, 동메달을 수여한다. 단, 동점자는 없다고 가정한다. 그리고 나라별 메달 수는 최대 두 개다.
예를 들어, 대회 결과가 다음의 표와 같이 주어졌다고 하자.
참가국학생번호점수
1 | 1 | 230 |
1 | 2 | 210 |
1 | 3 | 205 |
2 | 1 | 100 |
2 | 2 | 150 |
3 | 1 | 175 |
3 | 2 | 190 |
3 | 3 | 180 |
3 | 4 | 195 |
이 경우, 금메달 수상자는 1번 국가의 1번 학생이고, 은메달 수상자는 1번 국가의 2번 학생이며, 동메달 수상자는 3번 국가의 4번 학생이다. (1번 국가의 3번 학생의 성적이 동메달 수여자보다 높지만, 나라 별 메달 수가 두 개 이하 이므로 1번 국가 3번 학생은 동메달을 받을 수 없다.)
대회 결과가 입력으로 주어질 때, 메달 수상자를 결정하여 출력하는 프로그램을 작성하시오.
3. 제약사항
4. 입력
첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사이에 두고 주어진다. 단, 국가 번호는 1부터 순서대로 하나의 정수로 주어지며, 각 학생번호는 각 나라별로 1부터 순서대로 하나의 정수로 주어진다, 점수는 0 이상 1000 이하의 정수이고, 동점자는 없다고 가정한다. 입력으로 제공되는 국가는 적어도 두 나라 이상이다.
5. 출력
메달을 받는 학생들을 금, 은, 동메달 순서대로 한 줄에 한 명씩 출력한다. 즉, 첫 번째 줄에는 금메달 수상자를, 두 번째 줄에는 은메달 수상자를, 세 번째 줄에는 동메달 수상자를 출력한다. 하나의 줄에는 소속국가 번호와 학생 번호를 하나의 빈칸을 사이에 두고 출력한다.
6. 풀이
- 입력을 받은 다음, 내림차순으로 정렬하여 1등과 2등 참가국이 같으면 4번째를 출력하고, 1등과 2등 참가국이 다르면 3번째를 출력한다.
7. 소스 코드
import sys
input = sys.stdin.readline
N = int(input()) # 대회참가 학생 수
students = []
for _ in range(N) :
students.append(list(map(int, input().split())))
students = sorted(students, key = lambda x : -x[2])
if students[0][0] == students[1][0] : # 참가국이 같을 경우 1,2,4등 출력
print(*students[0][:2])
print(*students[1][:2])
print(*students[3][:2])
else : # 참가국이 다를 경우 1,2,3등 출력
print(*students[0][:2])
print(*students[1][:2])
print(*students[2][:2])
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 2010번 플러그 파이썬(Python) (0) | 2021.08.01 |
---|---|
[백준 알고리즘] 백준 22113번 창영이와 버스 파이썬(Python) (0) | 2021.07.30 |
[백준 알고리즘] 백준 15649번 N과 M (1) 파이썬(Python) (0) | 2021.07.30 |
[백준 알고리즘] 백준 1871번 좋은 자동차 번호판 파이썬(Python) (0) | 2021.07.30 |
[백준 알고리즘] 백준 9085번 더하기 파이썬(Python) (0) | 2021.07.28 |
[백준 알고리즘] 백준 2789번 유학 금지 파이썬(Python) (0) | 2021.07.26 |
[백준 알고리즘] 백준 2460번 지능형 기차 2 파이썬(Python) (0) | 2021.07.23 |
[백준 알고리즘] 백준 2566번 최댓값 파이썬(Python) (1) | 2021.07.20 |
최근댓글