알고리즘

그리디 알고리즘

iemxl 2023. 6. 28. 19:16

그리디 알고리즘

: 매 순간 가장 좋아보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다.

(사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은 문제 유형)

ex) 거스름돈 문제 (큰 단위 동전부터 거슬러야 )

* 가장 큰 순서대로, 가장 작은 순서대로 

 

#큰 수의 법칙

n,m,k=map(int,input().split())
lst=list(map(int,input().split()))
lst.sort()
result=(lst[-1]*(m//k)*k)+(lst[-2]*(m%k))
print(result)

 

#숫자 카드 게임

n,m=map(int,input().split())
lst=[]
result=[]
for i in range(n):
    lst.append(list(map(int,input().split())))
for j in lst:
    result.append(min(j))
print(max(result))

 

#1이 될 때까지

n,m=map(int,input().split())
cnt=0
while n!=1:
    if n%m!=0:
        n=n-1
    else:
        n=n/m
    cnt+=1
print(cnt)

'알고리즘' 카테고리의 다른 글

HEAP #힙 자료구조 #heapq #Dijkstra #다익스트라 알고리즘  (0) 2024.05.10
정렬  (0) 2024.05.09
DFS/BFS  (0) 2023.08.03
구현  (0) 2023.07.05