본문 바로가기

Computer Science/알고리즘

[Algorithm] 그리디 개념정리

728x90

개념

이 알고리즘은 어떠한 문제가 있을 때 단순하게, greedy하게 문제를 푸는 알고리즘이다. 이는 ‘현재 상황에서 지금 당장 좋은 것만 고르는 방법’을 의미한다. 여타의 알고리즘과 비교할 때, ‘사전에 외우지 않아도 풀 수 있는 가능성이 높은 문제 유형’이라는 특징이 있다.

기준

그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 가장 큰 순서대로, 가장 작은 순서대로와 같은 기준을 제시한다.

TIP

그리디 알고리즘으로 문제의 해법을 찾았을 때는 그 해법이 정당한지 검토해야 한다. 대부분의 그리디 알고리즘 문제에서는 문제 풀이를 위한 최소한의 아이디어를 떠올리고 이것이 정당한지 검토할 수 있어야 한다.

어떤 문제를 만났을 때, 바로 유형을 파악하기 어렵다면 그리디 알고리즘을 의심하고, 문제를 해결할 탐욕적인 해결법이 존재하는지 고민해보자.

 

관련 문제

- 동전 0 (🥈 4)

 

11047번: 동전 0

첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)

www.acmicpc.net

 

 

 

TIP

  • 이것이 취업을 위한 코딩 테스트다 with python
728x90

'Computer Science > 알고리즘' 카테고리의 다른 글

[Algorithm] 구현  (1) 2023.11.27