SW Expert Academy // 4466
2021. 1. 22. 18:06ㆍProgramming/SW Expert Academy
SW Expert Academy 4466번 "최대 성적표 만들기" 문제입니다.
TC = int(input())
for tc in range(1, TC + 1):
N, K = map(int, input().split())
score = list(map(int, input().split()))
max_score = 0
score.sort()
for i in range(K):
max_score += score.pop()
print("#%s"%tc, max_score)
만들 수 있는 최대 성적을 구하는 문제다.
점수들을 리스트로 입력받고 이를 sort메서드로 정렬한다.
이후 K번만큼 리스트를 pop해서 max_score에 더한다.
리스트의 pop메서드는 인덱스에 해당하는 요소를 빼는 것인데 인자값에 아무것도 들어가지 않을 경우는 리스트의 마지막 값을 제거하여 반환한다.
즉, 정렬을 하고 pop()을 할 경우 오름차순으로 정렬이 되어있기 때문에 가장 큰 값이 빠지게 되는 것이다.
이를 K번 반복하면 가장 큰 점수부터 K번째로 큰 점수까지 제거하여 max_score에 더할 수 있게 된다.
'Programming > SW Expert Academy' 카테고리의 다른 글
SW Expert Academy // 4371 (0) | 2021.01.23 |
---|---|
SW Expert Academy // 4406 (0) | 2021.01.23 |
SW Expert Academy // 4579 (0) | 2021.01.22 |
SW Expert Academy // 4522 (0) | 2021.01.22 |
SW Expert Academy // 4676 (0) | 2021.01.21 |