[TC0302] [그리디] 큰 수의 법칙
✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/이것이 코딩 테스트다

[TC0302] [그리디] 큰 수의 법칙

이코테

 

✅ 이것이 코딩 테스트다 - 큰 수의 법칙

# 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