변수
- N : 배열의 크기
- M : 숫자가 더해지는 횟수
- K : 젤 큰수가 더해질 수 있는 최대 수
- listN : 주어지는 배열
- first : 배열 중 가장 큰 수
second : 배열 중 두번째로 큰 수
- total : 더해지는 수
로직
- NMK 입력받기
- N list 입력받기
- sort() 로 정렬 -> 가장큰수 두번째로큰수 찾기
- for M 만큼 돌면서
K만큼 first를 + (M-1 , K-1)
한번 second를 + (M-1)
위 둘을 반복,,, M=0이될때까지
코드
N,M,K = map(int, input().split())
k = K
list_data = list(map(int, input().split()))
list_data.sort()
first = list_data[-1]
second = list_data[-2]
total = 0
for data in range (0,M) :
total += first
k -= 1
M -= 1
if (M==0):
break
if(k==0):
total += second
M -=1
k = K
if (M==0) :
break
print(total)