본문 바로가기

알고리즘/정렬

파이썬 | 백준 | 2865 | 나는 위대한 슈퍼스타K | 소수 출력

solution

1. dictionary 이용 { 참가자 번호 : 점수 }

2. 소수 첫째 자리까지 출력 print('%.1f' % sum)

# 2865, 나는 위대한 슈퍼스타K
import sys

# N: 예선 참가자 수, M: 장르, K: 본선 진출자 수
N, M, K = map(int, sys.stdin.readline().split())

candidate_score = {}
for i in range(N):
    candidate_score[i+1] = 0

for i in range(M):
    genre = list(map(float, sys.stdin.readline().split()))
    for j in range(0, 2*N, 2):
        if genre[j+1] > candidate_score[genre[j]]:
            candidate_score[genre[j]] = genre[j+1]

score = sorted(list(candidate_score.values()), reverse=True)
sum = sum(score[:K])
print('%.1f' % sum)		# 소수 첫째 자리

29380KB

68ms

 

문제 출처 https://www.acmicpc.net/problem/2865

 

2865번: 나는 위대한 슈퍼스타K

문제 상근이는 한국 최고의 가수를 뽑는 "나는 위대한 슈퍼스타K"의 감독이다. 상근이는 다음과 같이 참가자를 선발하려고 한다. "나는 위대한 슈퍼스타K"의 예선에는 N명이 참가했고, 서로 다른

www.acmicpc.net