2019 국가교육기관 코딩테스트_대수의 법칙_python_(Greedy)

https://nearhome.22

(2019 국가교육기관 코딩테스트) 대수의 법칙(Python)

다수의 문제탈출의 법칙은 다양한 수의 배열이 있을 때 주어진 수를 M번 더하여 가장 큰 수를 만드는 법칙이다. 그러나 배열의 특정 인덱스(숫자)에 해당하는 숫자가 연속적으로 K회를 초과합니다.

nearhome.tistory.com

import sys
input = sys.stdin.readline

n, m, k = map(int, input().split())
li = list(map(int, input().split()))
li.sort(reverse=True)
i = 0
answer = 0
max = 0

while i < m:

    for g  in range(0, k):
        answer += li(0)
        i += 1
        if i >= m:
            break
    if i < m:
        answer += li(1)
        i += 1

print(answer)

을 더한

1) M만큼 넣었는지 센다.

2) 첫 번째 큰 숫자에 K를 더합니다.

3) 두 번째로 큰 수를 한 번 더하고 2)로 돌아간다.

(매 단계마다 1번 확인)