‘현재 상황에서 지금 당장 좋은 것만 고르는 방법’ 탐욕적 알고리즘

<aside> ❗ [Hint]

‘가장 큰 순서대로’ / ‘가장 작은 순서대로’

</aside>

[2] 큰 수의 법칙

N, M, K = map(int, input().split())
n_list = list(map(int, input().split()))

n_list.sort(reverse=True)
first = n_list[0]
second = n_list[1]

count = int(M/(K+1)) * K
result = first * count + second * (M - count)
print(result)

Tip. 가장 큰 수를 더하는 횟수를 구하기

[3] 숫자 카드 게임

N, M = map(int, input().split())
m = 0
for i in range(N):
    data = list(map(int, input().split()))
    if min(data) > m:
        m = min(data)
print(m)

Tip. 행 별로 가장 작은 숫자를 찾은 후 그 중에서 제일 큰 수를 찾기

[4] 1이 될 때까지

N, K = map(int, input().split())
result = 0

while True:
    if N == 1:
        break
    result = result + N % K + 1
    N = N // K

print(result)