반응형
문제
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 값을 먼저 출력한 다음 형식에 맞춰 인덱스도 출력해 준다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 18258: 큐2 (2) | 2023.05.16 |
---|---|
[파이썬, Python] 백준 2003: 수들의 합 2 (0) | 2023.05.15 |
[파이썬, Python] 백준 11728: 배열 합치기 (0) | 2023.05.09 |
[파이썬, Python] 백준 7576: 토마토 (0) | 2023.05.08 |
[파이썬, Python] 백준 2161: 카드1 (0) | 2023.05.04 |