[4일차] Greedy_큰 수의 법칙

Tourist_X·2022년 1월 25일
0

🏆Today Code Test


🛠Problem Approach

🔑Solution

n, m, k = map(int, input().split())
lst = sorted(list(map(int, input().split())),reverse=True)
total = 0 # 총 합
idx = 0
prev = 0 # 연속 횟수

# print(lst)
while m != 0: # 총 더할 횟수
    # print('m',m, 's',total)
    if k == prev: # 연속 횟수가 최대 연속 가능 수와 같으면
        total += lst[int(not(idx))]  # 두번째 큰수를 한번 더한다
        # print('+',lst[int(not(idx))])
        prev = 0 # 연속 횟수 초기화
    else:
        total += lst[idx] # 아닐경우, 연속 가능 횟수만큼 최대값 더하기
        # print(lst[idx])
        prev += 1 # 연속 횟수 증가
    m -= 1 # 더하기 연산 수 감소
print(total)
profile
Always, Better than.

0개의 댓글