728x90
그리디 알고리즘(Greedy Algotirhm) 이란?
현재 상황에서 지금 당장 좋은 것만 고르는 방법을 말한다.
최소한의 아이디어를 떠올리고 이것이 정당한지 검토할 수 있어야 한다.
< 연습문제 >
Q. 거스름 돈
카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한으로 존재한다. 손님에게 거슬러 주어야 할 돈이 N원일 때 거슬러 주어야 할 최소의 동전 개수를 구하라. 단, 거슬러 줘야 할 돈N은 항상 10의 배수이다.
A.
n = 1260
count = 0
array = [ 500, 100, 50, 10 ]
for coin in array:
count += n // coin
n %= coin
print(count)
-> 거스름 돈이 1,260원일 때, array리스트(동전)의 500, 100, 50, 10을 차례대로 불러온다.
거스름 돈을 동전으로 나누고 몫은 count, 나머지는 n에 넣어 초기화한다.
시간복잡도는 O(K)로 동전의 총 종류에만 영향을 받는다.
728x90
'IT > 알고리즘' 카테고리의 다른 글
[python/알고리즘] 등차수열의 합 구하기 (4) | 2021.05.17 |
---|---|
[python/알고리즘] 이차원 배열로 마방진 만들기 (0) | 2021.05.16 |
[python/알고리즘] 계란 낙하 실험 문제 (0) | 2021.05.15 |
[python/알고리즘] 스무고개를 넘어보자 (0) | 2021.05.14 |
[python/알고리즘] 로마 숫자를 아라비아 숫자로 변경하기 (1) | 2021.05.13 |
댓글
최근에 올라온 글
TAG
- SQLD
- OpenCV
- SQL
- Min()
- Scikit
- 주니온
- numpy
- 파이썬
- algorithm
- MongoDB
- 부스트코스
- 프로그래머스
- Max()
- 경사하강법
- 자료구조
- slqd
- Ai
- VGGNet
- Programmers
- Pandas
- sklearn
- Python
- 딥러닝
- db
- 알고리즘
- cnn
- Project
- 인공지능
- 기계학습
- 머신러닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Total
- Today
- Yesterday
250x250