정구리의 우주정복
[알고리즘 기초] 그리디 알고리즘 (Greedy Algorithm) 본문
반응형
그리디 알고리즘이란 ?
당장 눈앞의 최적의 조건을 따르는 알고리즘 ! ex) 거스름돈 문제
주로 무조건 큰, 긴 , 작은 , 짧은 등등 극단적으로 접근한다는 점에서 '정렬'과 같이 쓰이는 경우가 많다
최적의 해를 보장하는 경우도 많지만 그렇지 못하는 경우가 더 많아서 DP(다이나믹 프로그래밍 ) 등을 사용할 수도 있다
ex) 거스름돈 문제
500,100,50,10 원의 동전으로 거스름돈을 반환해야 할 때 가장 적은양의 거스름돈을 반환하도록 해보자 !!
500원이 가장많아야하고 100->50->10 순서로 거슬러주면 된다
파이썬 코드
value = int(input()) #거스름돈
result = 0 #동전의 개수
result += value//500 #500으로 나눈것의 몫을 더해준다
value %= 500 #500 으로 나눠준것의 나머지
result += value // 100
value %= 100
result += value // 50
value %= 50
result += value // 10
value %= 10
print(result)
가장 큰 500부터 접근을 하게된다
반응형
'ALGORITHM > BASIC' 카테고리의 다른 글
그리디 알고리즘 기초 - 거스름돈 (0) | 2020.08.28 |
---|---|
[알고리즘 기초] 선형 탐색 ( linear_search) (0) | 2020.06.16 |
[알고리즘 기초] 백준 2750번 - 수 정렬하기 파이썬 (버블정렬,삽입정렬) (0) | 2020.05.23 |
[알고리즘 기초] 브루트포스 (Brute-force) (0) | 2020.05.14 |
[알고리즘 기초] 선택 정렬 (selection sort) (0) | 2020.05.10 |
Comments