✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/이것이 코딩 테스트다
[TC0302] [그리디] 큰 수의 법칙
yeomss
2021. 11. 16. 13:38
✅ 이것이 코딩 테스트다 - 큰 수의 법칙
# N M K 입력
N, M, K = map(int, input().split())
# 수열 입력
arr = list(map(int, input().split()))
# 제일 큰 수, 그 다음 수 구하기
arr_sorted = sorted(arr)
n1 = arr_sorted[-1] # first
n2 = arr_sorted[-2] # second 라고 변수명 지었어도 좋았을듯
# 카운트
cnt = M // (K + 1)
remain = M % (K + 1)
if (M % 2 == 0): # 짝수라면
ans = ((n1 * K) + n2) * cnt
print(ans)
else: # 홀수라면
ans = ((n1 * K) + n2) * cnt + (n1 * remain)
print(ans)
◾ Greedy
◾ sorted 해서 제일 큰수와 그 다음의 수를 구한다.
◾ M을 K + 1로 나눠줘서 cnt를 구하고 나중에 곱해준다.
◾ remain 값들을 처리해준다.
728x90