t_큰수의법칙_92

source github.com/ndb796/python-for-coding-test
type 📌 개발노트
topics 600-알고리즘 & 코딩테스트 602 그리디
types 문제풀이

문제

배열이 있을때 합이 가장 클 때의 결과를 출력
입력 : N M K
M: M번 더 할 수 있음
K : K번 연속으로 수를 사용할 수 있음

import sys

k,n,m = map(int, sys.stdin.readline().split())
arr = list(map(int, sys.stdin.readline().split()))

arr.sort(reverse=True)

sum = 0
flag = True 
while n > 0:
    if flag:
        if n<m:
            m=n
        sum += arr[0]*m
        n -= m
        flag=False
    else:
        sum += arr[1]
        n -= 1
        flag= True

print(sum)

걍 눈속임을 준문제 사실상 0과 1 번째 밖에 안 필요함.
예외 없음. 길이가 2이상이고 연속해서 사용하는횟수가 제한된거지