그리디 알고리즘 예제 - 1
문제 분석
전형적인 그리디 알고리즘 문제이다.
그리디 알고리즘으로 풀 수 있도록 뒤의 동전 가격이 앞에 나오는 동전 가격의 배수가 된다는 조건을 부여했다.
즉, 동전을 최소로 사용하여 K를 만들기 위해서는 가장 가격이 큰 동전부터 차례대로 사용하면 된다.
손으로 풀어보기
가격이 큰 동전부터 내림차순으로 K보다 가격이 작거나 같은 동전이 나올 때까지 탐색한다.

탐색을 멈춘 동전의 가격으로 K를 나눠 몫은 동전 개수에 더하고, 나머지로 K값을 갱신한다.
과정 1 ~ 2를 나머지가 0이 될 때까지 반복한다.
슈도코드
코드 구현 - 파이썬
그리디 알고리즘에서 자주 사용하는 자료구조 우선순위 큐
그리디 알고리즘은 현재 상황에서 최선의 선택을 반복하느 알고리즘이기 때문에 우선순위 큐를 사용하여 문제를 해결하는 경우가 흔하다. 파이썬에서는 우선순위 큐 자료구조를 두 가지 방법으로 제공한다.
PriorityQueue는 객체 자체를 우선순위 큐 형태로 만들어 사용하는 반면,heapq는 기본적인 list 객체를 대상으로 원소 삽입, 삭제 등의 제공 함수를 통해 우선순위 큐를 구현한다.
코드 구현 - 자바
Last updated