study
그리드 알고리즘(거스름돈) 본문
그리디 알고리즘
: 어떠한 문제가 있을 때 단순 무식하게, 탐욕적으로 문제를 푸는 알고리즘이다. 여기서 탐욕적이라는 말은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 그리디 알고리즘을 이용하면 매 순간 가장 좋아 보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다.
예제 - 거슴름돈
당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러줘야 할 동전의 최소 개수를 구하라, 단 거슬러 줘야 할 돈 N은 항상 10의 배수이다.
문제 해설
이 문제는 그리디 알고리즘을 이용해 풀 수 있는 대표적인 문제로 간단한 아이디어만 떠올릴 수 있으면 문제를 해결할 수 있다. 그것은 바로 가장 큰 화폐 단위부터 돈을 거슬러 주는 것이다. N원을 거슬러 줘야 할 때, 가장 먼저 500원으로 거슬러 줄 수 있을 만큼 거슬러 준다. 그다음 100원 50원 10원짜리 동전을 차례대로 거슬러 줄 수 있을 만큼 거슬러 주면 최소의 동전 개수로 모두 거슬러 줄 수 있다
참고자료
- 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 나동빈 지음, 한빛미디어 옮김
'자료구조' 카테고리의 다른 글
연속 숫자 제거 (0) | 2020.12.16 |
---|---|
3진법 뒤집기 (0) | 2020.12.15 |
그리디 알고리즘(숫자 카드 게임) (0) | 2020.11.04 |
그리디 알고리즘(큰 수의 법칙) (0) | 2020.11.03 |
자료구조 기초 (0) | 2020.10.12 |