[백준/Python] BOJ 5766 - 할아버지는 유명해!

NAGANG LEE·2023년 10월 10일

알고

목록 보기
27/118

👀 문제

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

"그 뉴스" 를 보고 온 가족이 들떴습니다. 모두들 할아버지께서 수 십년간 굉장히 실력있는 브릿지(카드게임의 일종) 선수였다는 것은 알고 있었지만, 할아버지가 역대 최고의 bridge 선수로서 기네스북에 오른다는 소식은 정말이지 놀라웠죠!

IBA(국제 브릿지 협회)는 수 년간, 매주 가장 실력있는 선수들의 랭킹 정보를 기록해왔습니다. 매주 랭킹에 선수의 이름이 오를 때마다 선수의 포인트가 1포인트씩 오르는데, 할아버지께서 가장 많은 포인트를 얻어서 최고의 브릿지 선수로 선정되었습니다.

할아버지께는 그와 브릿지 순위를 경쟁하는 친구들이 많이 있었기 때문에, 할아버지는 어떤 선수(들)가 2등을 했는지 정말 궁금하셨습니다.

IBA 랭킹 정보는 이제 온라인에 올라와 있고, 할아버지께서 당신에게 도움을 요청했습니다. 당신은 매주마다의 랭킹 정보 리스트를 인풋으로 받아 2등 선수가 누구인지 알아내는 프로그램을 짜야 합니다.


🔑 키포인트

구현


✍️ 코드

import sys
from collections import Counter

# n주 동안의 매주 상위 m명의 랭킹 정보
while True:
    rank = []
    answer = []
    n, m = map(int, sys.stdin.readline().split())

    # 0, 0 입력받으면 종료
    if n == 0 and m == 0:
        break

    # 여러 줄 한 배열에 다 받아주기
    for _ in range(n):
        rank += list(map(int, sys.stdin.readline().split()))

    # 카운트 하고 내림차순으로 정렬
    sorted_count = sorted(Counter(rank).items(), key=lambda x: x[1], reverse=True)
    answer.append(sorted_count[1][0])

    # 동점도 answer 배열에 넣어주기
    for i in range(2, len(sorted_count)):
        if sorted_count[i][1] != sorted_count[1][1]:
            break
        else:
            answer.append(sorted_count[i][0])

	# 출력
	print(*sorted(answer))
profile
모바일 개발자를 목표로 하고 있어요 💭

0개의 댓글