티스토리 뷰

728x90

https://www.acmicpc.net/problem/2822

 

2822번: 점수 계산

8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문

www.acmicpc.net


  • 문제 : 

상근이는 퀴즈쇼의 PD이다. 이 퀴즈쇼의 참가자는 총 8개 문제를 푼다. 참가자는 각 문제를 풀고, 그 문제를 풀었을 때 얻는 점수는 문제를 풀기 시작한 시간부터 경과한 시간과 난이도로 결정한다. 문제를 풀지 못한 경우에는 0점을 받는다. 참가자의 총 점수는 가장 높은 점수 5개의 합이다.

 

상근이는 잠시 여자친구와 전화 통화를 하느라 참가자의 점수를 계산하지 않고 있었다. 참가자의 8개 문제 점수가 주어졌을 때, 총 점수를 구하는 프로그램을 작성하시오.

 

 

 


  • 풀이 :

구현 문제였습니다.

 

알고리즘의 흐릅입니다.

 

1. 8개의 점수를 [점수,문제번호]의 형태로 저정합니다.

 

2. 점수를 내림차순 정렬합니다.

 

3. 내림차순한 리스트의 5번째 요소까지 slice하여 sum을 출력합니다.

 

4. 내림차순한 리스트의 5번째 요소까지 silce한 상태에서 key를 문제 번호인 x[1]로 하여 오름차순 정렬하여 join으로 출력 양식에 맞게 출력합니다.

 

 

 


  • 소스코드 : 
score = [[int(input()),i] for i in range(1,9)]
score.sort(reverse=True)
print(sum(i[0] for i in score[:5]))
print(' '.join(map(str,[i[1] for i in sorted(score[:5],key = lambda x : x[1])])))
320x100
댓글
© 2022 WonSeok, All rights reserved