알고리즘
[algorithm] 백준 2822 - 점수 계산 (파이썬)
hyuuny
2022. 7. 12. 00:22
📚 문제
입력
- 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다.
- 점수는 0보다 크거나 같고, 150보다 작거나 같다.
- 모든 문제에 대한 점수는 서로 다르다.
- 입력으로 주어지는 순서대로 1번 문제, 2번 문제, ... 8번 문제이다.
출력
- 첫째 줄에 참가자의 총점을 출력한다.
- 둘째 줄에는 어떤 문제가 최종 점수에 포함되는지를 공백으로 구분하여 출력한다.
- 출력은 문제 번호가 증가하는 순서이어야 한다.
입력 예시 1
20
30
50
48
33
66
0
64
출력 예시 1
261
3 4 5 6 8
입력 예시 2
20
0
50
80
77
110
56
48
출력 예시 2
373
3 4 5 6 7
입력 예시 3
20
30
50
80
110
11
0
85
출력 예시 3
355
2 3 4 5 8
🧑🏻💻 풀이 과정
- 입력받은 점수를 큰 점수부터 내림차순 정렬하자.
- 변수(
additional_val
)에 큰 순서대로 5개를 저장하고, 모두 더하자. scores
를 반복하면서,additional_val
에 저장된 값과 일치하는index
값을 출력하자.
scores = {}
for i in range(1, 8 + 1):
scores.setdefault(int(i), int(input()))
# 큰 점수부터 내림차순 정렬
sorted_scores = sorted(scores.values(), reverse=True)
# 더할 점수 5개를 별도의 변수에 저장
additional_val = sorted_scores[0:5]
print(sum(additional_val))
# additional_val에 포함된다면 index를 가져오자.
for key, value in scores.items():
if value in additional_val:
print(key, end=" ")