Skip to content

Commit 664b3a1

Browse files
committed
[Silver V] Title: 아시아 정보올림피아드, Time: 32 ms, Memory: 32412 KB -BaekjoonHub
1 parent 863b73e commit 664b3a1

File tree

2 files changed

+123
-0
lines changed

2 files changed

+123
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# [Silver V] 아시아 정보올림피아드 - 2535
2+
3+
[문제 링크](https://www.acmicpc.net/problem/2535)
4+
5+
### 성능 요약
6+
7+
메모리: 32412 KB, 시간: 32 ms
8+
9+
### 분류
10+
11+
구현, 정렬
12+
13+
### 제출 일자
14+
15+
2025년 3월 19일 20:32:58
16+
17+
### 문제 설명
18+
19+
<p>최근 아시아 지역의 학생들만 참여하는 정보 올림피아드 대회가 만들어졌다. 이 대회는 온라인으로 치러지기 때문에 각 나라에서 이 대회에 참여하는 학생 수의 제한은 없다. </p>
20+
21+
<p>참여한 학생들의 성적순서대로 세 명에게만 금, 은, 동메달을 수여한다. 단, 동점자는 없다고 가정한다. 그리고 나라별 메달 수는 최대 두 개다.</p>
22+
23+
<p>예를 들어, 대회 결과가 다음의 표와 같이 주어졌다고 하자.</p>
24+
25+
<table class="table table-bordered table-center-20 th-center td-center">
26+
<thead>
27+
<tr>
28+
<th>참가국</th>
29+
<th>학생번호</th>
30+
<th>점수</th>
31+
</tr>
32+
</thead>
33+
<tbody>
34+
<tr>
35+
<td>1</td>
36+
<td>1</td>
37+
<td>230</td>
38+
</tr>
39+
<tr>
40+
<td>1</td>
41+
<td>2</td>
42+
<td>210</td>
43+
</tr>
44+
<tr>
45+
<td>1</td>
46+
<td>3</td>
47+
<td>205</td>
48+
</tr>
49+
<tr>
50+
<td>2</td>
51+
<td>1</td>
52+
<td>100</td>
53+
</tr>
54+
<tr>
55+
<td>2</td>
56+
<td>2</td>
57+
<td>150</td>
58+
</tr>
59+
<tr>
60+
<td>3</td>
61+
<td>1</td>
62+
<td>175</td>
63+
</tr>
64+
<tr>
65+
<td>3</td>
66+
<td>2</td>
67+
<td>190</td>
68+
</tr>
69+
<tr>
70+
<td>3</td>
71+
<td>3</td>
72+
<td>180</td>
73+
</tr>
74+
<tr>
75+
<td>3</td>
76+
<td>4</td>
77+
<td>195</td>
78+
</tr>
79+
</tbody>
80+
</table>
81+
82+
<p>이 경우, 금메달 수상자는 1번 국가의 1번 학생이고, 은메달 수상자는 1번 국가의 2번 학생이며, 동메달 수상자는 3번 국가의 4번 학생이다. (1번 국가의 3번 학생의 성적이 동메달 수여자보다 높지만, 나라 별 메달 수가 두 개 이하 이므로 1번 국가 3번 학생은 동메달을 받을 수 없다.)</p>
83+
84+
<p>대회 결과가 입력으로 주어질 때, 메달 수상자를 결정하여 출력하는 프로그램을 작성하시오.</p>
85+
86+
### 입력
87+
88+
<p>첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사이에 두고 주어진다. 단, 국가 번호는 1부터 순서대로 하나의 정수로 주어지며, 각 학생번호는 각 나라별로 1부터 순서대로 하나의 정수로 주어진다, 점수는 0 이상 1000 이하의 정수이고, 동점자는 없다고 가정한다. 입력으로 제공되는 국가는 적어도 두 나라 이상이다.</p>
89+
90+
### 출력
91+
92+
<p>메달을 받는 학생들을 금, 은, 동메달 순서대로 한 줄에 한 명씩 출력한다. 즉, 첫 번째 줄에는 금메달 수상자를, 두 번째 줄에는 은메달 수상자를, 세 번째 줄에는 동메달 수상자를 출력한다. 하나의 줄에는 소속국가 번호와 학생 번호를 하나의 빈칸을 사이에 두고 출력한다. </p>
93+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# 2535 아시아 정보올림피아드
2+
# 실버 5
3+
4+
import sys
5+
6+
n = int(sys.stdin.readline())
7+
8+
table = []
9+
10+
for _ in range(n):
11+
table.append(list(map(int, sys.stdin.readline().split())))
12+
#nation, student, score = map(int, sys.stdin.readline().split())
13+
14+
table.sort(key=lambda x: x[2], reverse=True)
15+
16+
#print(table)
17+
18+
print(table[0][0], table[0][1])
19+
print(table[1][0], table[1][1])
20+
21+
# 국가 번호가 같을 때
22+
if table[0][0] == table[1][0]:
23+
for i in range(2, n):
24+
if table[i][0] == table[0][0]:
25+
continue
26+
else:
27+
print(table[i][0], table[i][1])
28+
break
29+
else:
30+
print(table[2][0], table[2][1])

0 commit comments

Comments
 (0)