개발 연습장/백준 문제풀이

[파이썬, Python] 백준 2822: 점수 계산

LooanCheong 2023. 5. 12. 11:35
반응형

문제

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

 

2822번: 점수 계산

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

www.acmicpc.net

코드

li = []
idx = []
ans = 0

for i in range(8):
    li.append(int(input()))

for i in range(5):
    idx.append(li.index(max(li)) + 1)
    ans += li[li.index(max(li))]
    li[li.index(max(li))] = -1

idx.sort()

print(ans)
for i in idx:
    print(i, end=' ')

설명

우선 li에 점수 리스트를 받아준다.

그리고 5번의 반복문을 돌며,
1. 가장 큰 수의 인덱스 + 1(인덱스가 아니라 위치이므로)을 idx에 넣어준다.
2. ans에 해당 값을 더해준다.
3. 다음 번에 사용되지 않도록 해당 값을 -1로 변경해 준다.
이 동작을 반복해 준다.

3번이 핵심 아이디어였다.

그 이후 인덱스 값을 담은 idx는 정렬해 주고,
ans 값을 먼저 출력한 다음 형식에 맞춰 인덱스도 출력해 준다.

반응형