- 문제
상근이는 퀴즈쇼의 PD이다. 이 퀴즈쇼의 참가자는 총 8개 문제를 푼다. 참가자는 각 문제를 풀고, 그 문제를 풀었을 때 얻는 점수는 문제를 풀기 시작한 시간부터 경과한 시간과 난이도로 결정한다. 문제를 풀지 못한 경우에는 0점을 받는다. 참가자의 총 점수는 가장 높은 점수 5개의 합이다.
상근이는 잠시 여자친구와 전화 통화를 하느라 참가자의 점수를 계산하지 않고 있었다. 참가자의 8개 문제 점수가 주어졌을 때, 총 점수를 구하는 프로그램을 작성하시오.
조건
1. 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문제, ... 8번 문제이다.
2.첫째 줄에 참가자의 총점을 출력한다. 둘째 줄에는 어떤 문제가 최종 점수에 포함되는지를 공백으로 구분하여 출력한다. 출력은 문제 번호가 증가하는 순서이어야 한다.
- 코드
# 입력부
score=[]; result=[];
for i in range(8):
score.append(int(input()));
# 처리부
high_score=sorted(score,reverse=True);
for i in range(5):
for j in range(len(score)):
if(high_score[i]==score[j]):
result.append(j+1);
result.sort()
# 출력부
print(sum(high_score[:5]));
print(*result);
- 풀이 과정
숫자를 8번 입력받는다.
그 후 점수를 내림차순으로 정리한다.
내림차순 정렬된 숫자가 몇 번째 문제인지 판별한다.
점수가 높은 5개를 출력하라고 했으므로 루프를 5번 돌린다. 그리고 그 안에 중첩 for문으로 리스트 길이만큼 루프를 돌린다.
상위 5개 고배점 점수와 리스트에 들어있는 수가 같으면, 문제 번호를 반환한다.
상위 5개 배점이 높은 문제의 합을 출력하고,
그 후 상위 5개 고배점 문제 번호를 반환한다.
- 여담
방금 전 올림픽 문제를 보고 와서 그런지, 문제가 되게 선녀같다.
| 코드가 이상하거나, 이해되지 않는 부분이 있다면 언제든 댓글 남겨주세요! :) |
'Programming > Python' 카테고리의 다른 글
| [백준] 11179번 : 2진수 뒤집기 (Python / 파이썬) (0) | 2023.01.10 |
|---|---|
| [백준] 14659번 : 한조서열정리하고옴ㅋㅋ (Python / 파이썬) (0) | 2023.01.07 |
| [백준] 8979번 : 올림픽 (Python / 파이썬) (0) | 2023.01.04 |
| [백준] 11557번 : Yangjojang of The Year (Python /파이썬) (0) | 2023.01.04 |
| [백준] 1237번 : 정ㅋ벅ㅋ (Python / 파이썬) (1) | 2023.01.03 |