[파이썬 풀이] 2535번: 아시아 정보올림피아드 - 백준

2022. 7. 15. 16:30· 🌀 알고리즘(Algorithm)/백준(문제 풀이)
728x90
반응형

백준 2535번: 아시아 정보올림피아드

알고리즘 분류: 구현, 정렬

파이썬(Python) 풀이

 

링크: https://www.acmicpc.net/problem/2535

 

2535번: 아시아 정보올림피아드

첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사

www.acmicpc.net

문제

최근 아시아 지역의 학생들만 참여하는 정보 올림피아드 대회가 만들어졌다. 이 대회는 온라인으로 치러지기 때문에 각 나라에서 이 대회에 참여하는 학생 수의 제한은 없다.

참여한 학생들의 성적순서대로 세 명에게만 금, 은, 동메달을 수여한다. 단, 동점자는 없다고 가정한다. 그리고 나라별 메달 수는 최대 두 개다.

예를 들어, 대회 결과가 다음의 표와 같이 주어졌다고 하자.

 

참가국 학생번호 점수
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번 학생은 동메달을 받을 수 없다.)

대회 결과가 입력으로 주어질 때, 메달 수상자를 결정하여 출력하는 프로그램을 작성하시오.


입력

첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사이에 두고 주어진다. 단, 국가 번호는 1부터 순서대로 하나의 정수로 주어지며, 각 학생번호는 각 나라별로 1부터 순서대로 하나의 정수로 주어진다, 점수는 0 이상 1000 이하의 정수이고, 동점자는 없다고 가정한다. 입력으로 제공되는 국가는 적어도 두 나라 이상이다.


출력

메달을 받는 학생들을 금, 은, 동메달 순서대로 한 줄에 한 명씩 출력한다. 즉, 첫 번째 줄에는 금메달 수상자를, 두 번째 줄에는 은메달 수상자를, 세 번째 줄에는 동메달 수상자를 출력한다. 하나의 줄에는 소속국가 번호와 학생 번호를 하나의 빈칸을 사이에 두고 출력한다. 


풀이

이 문제는 오름차순으로 정렬을 한 뒤에 '나라별 메달 수는 최대 두 개다'를 예외 처리하면 된다.

먼저 country(국가), number(학생번호), score(점수) 리스트를 생성한 뒤,

for 반복문을 통해 입력을 받는다.

 

그리고 score에서의 최댓값이 포함된 위치를 찾아준 뒤 first에 넣어준다.

그러면 같은 위치에서 country와 number도 가장 높은 점수를 가진 학생일 것이다.

 

이후, 출력을 해준다.

 

second(2등)에서도 이 과정을 반복한다.

 

하지만 third(3등)의 경우, 1등과 2등의 국가가 같으면 3등은 국가가 달라야하기에

 

while True로 국가가 다를때까지 최대점수에서부터 한칸씩 내려온다고 생각하면 된다.

728x90
반응형
저작자표시 (새창열림)

'🌀 알고리즘(Algorithm) > 백준(문제 풀이)' 카테고리의 다른 글

[파이썬 풀이] 25345번: 루나의 게임 세팅 - 백준  (0) 2022.08.17
[파이썬 풀이] 1152번: 단어의 개수 - 백준  (0) 2022.08.14
[파이썬 풀이] 17202번: 핸드폰 번호 궁합 - 백준  (0) 2022.07.28
[파이썬 풀이] 24039번: 2021은 무엇이 특별할까? - 백준  (0) 2022.07.19
[파이썬 풀이] 2869번: 달팽이는 올라가고 싶다 - 백준  (0) 2022.07.10
'🌀 알고리즘(Algorithm)/백준(문제 풀이)' 카테고리의 다른 글
  • [파이썬 풀이] 1152번: 단어의 개수 - 백준
  • [파이썬 풀이] 17202번: 핸드폰 번호 궁합 - 백준
  • [파이썬 풀이] 24039번: 2021은 무엇이 특별할까? - 백준
  • [파이썬 풀이] 2869번: 달팽이는 올라가고 싶다 - 백준
Dodolist
Dodolist
소프트웨어 및 하드웨어에 대한 지식 및 시행착오 기록 사이트
도돌이의 세미프로그래밍소프트웨어 및 하드웨어에 대한 지식 및 시행착오 기록 사이트
Dodolist
도돌이의 세미프로그래밍
Dodolist
전체
오늘
어제
  • 분류 전체보기 (68)
    • 💻 소프트웨어(SW) (29)
      • HTML | JS | CSS (6)
      • Python (5)
      • Swift (9)
      • MySQL (4)
      • 프로젝트 (4)
    • 🌀 알고리즘(Algorithm) (9)
      • 백준(문제 풀이) (9)
    • ✏️나를 되돌아보는, 글 (13)
      • 진지한 글 (9)
      • 뻘글 (4)
    • 📚 지식글 (14)
    • 거인의 무릎에 올라타기 (2)

블로그 메뉴

  • | Home
  • | Miruzima
  • | Instagram

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.v4.2.2
Dodolist
[파이썬 풀이] 2535번: 아시아 정보올림피아드 - 백준
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.