[ 참고 블로그 ]
[알고리즘(Java)] 그리디 알고리즘(Greedy Algorithm)
: "매 선택에서 지금 이 순간 당장 최적의 답을 선택하여 적합한 결과를 도출하자"라는 모토를 가지는 알고리즘 설계 기법그리디 알고리즘은 기본적으로 무조건 큰 경우대로, 무조건 작은 경우
velog.io
[ 그리드 알고리즘 이란? ]
그리디 알고리즘은 다른 알고리즘 과는 다르게
코드 자체의 패턴이 있기 보다는 방식의 느낌이 가능하다
그리디 갈고리즘이란 다른 의미로 욕심쟁이 알고리즘 이라고도 한다
[ 정의 ]
그리디 알고리즘은 기본적으로 무조건 큰 경우대로, 무조건 작은 경우대로, 무조건 긴 경우대로, 무조건 짧은 경우대로 등 극단적으로 문제에 접근하는 방식으로 정렬(Sort)를 함께 사용하는 경우가 많다
[ 장점 ]
항상 최적의 결과를 도출하는 것은 아니지만 어느 정도 최적의 해에 근사한 값을 빠르게 구할 수 있다는 장점이 있다. 또한 '특정한 상황'에 있어서는 그리디 알고리즘이 최적의 해를 보장할 수도 있다
https://www.acmicpc.net/problem/11047
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
그리디 알고리즘을 사용하면 적절한 문제이다
'알고리즘' 카테고리의 다른 글
23. [JAVA] 소수 구하기에 대해서(Math.sqrt란?) (0) | 2022.09.06 |
---|---|
19. [JAVA] 그래프(Graph) (1) | 2022.08.30 |
18. [JAVA] 투 포인터, 슬라이딩 윈도우 (0) | 2022.08.24 |
17. [JAVA] 스택 과 큐(Stack / Queue) (0) | 2022.08.24 |
16. [JAVA] Comparable (0) | 2022.08.17 |