알고리즘 문제 풀이: 파이썬/BOJ

[BOJ_5766] 할아버지는 유명해!

hueco 2022. 10. 10.

 

📌 문제 링크: https://www.acmicpc.net/problem/5766

 

5766번: 할아버지는 유명해!

각 테스트 케이스마다,  당신의 프로그램은 한 행에 2등인 선수(들)의 번호를 출력해야 합니다. 2등인 선수가 두 명 이상인 경우(동점자 발생), 각 선수 번호를 공백으로 구분하여 오름차순으로

www.acmicpc.net

 

내 풀이(Success) :

 

🚩 Idea:

- n과 m이 모두 0이면 반복문을 종료시킨다.

- 딕셔너리를 보다 간편히 사용하기 위해서 defaultdict을 사용한다.

- 매주 랭킹 정보를 입력받고, 선수들의 번호를 기준으로 딕셔너리의 값을 1씩 증가시킨다.

- 딕셔너리의 key, value 값을 튜플로 result 배열에 담는다.

- value 값(포인트)를 기준으로 내림차순 정렬한다. 정렬된 배열의 첫 번째 원소(index: 0)는 할아버지의 랭킹이다.

- 따라서 두 번째 원소부터 2등인 선수들을 찾는다. 가장 처음으로 나오는 2등 선수(index: 1)의 포인트를 count에 담고, 선수 번호는 answer 배열의 초기값으로 한다.

- result 배열의 index 2부터 2등 선수와 포인트가 동일한 선수를 찾고, 만약 존재한다면 answer 배열에 해당 선수의 번호를 담는다.

- for 반복문이 종료되고, answer 배열을 오름차순으로 정렬한 뒤, 출력 형식에 맞게 출력한다.

 

댓글