티스토리 뷰

정리

그리디 문제 풀기

logwns 2021. 6. 25. 19:33

그리디문제 풀 때 증명없이 감으로만 풀어서 문제를 계속 풀어도 실력이 제자리인 것 같았는데
책에 좋은 내용이 있어서 나중에 또 잊어버리기 전에 바로 정리해두는 게 좋을 것 같다.
(이 내용은 알고리즘 문제 해결전략 책에 나오는 내용을 참고하여 작성했습니다.)
(이 내용은 제가 이해한 걸 정리해둔 거라 틀린 내용이 있을 수도 있습니다.)

 

그리디 문제를 풀 때

(1) 탐욕적 선택 속성

(2) 최적 부분 구조 

위의 두가지를 증명하면 그리디로 풀어도 답을 구할 수 있음을 알 수 있다.

 

(1) 탐욕적 선택 속성

답의 모든 부분을 고려하지 않고 탐욕적(그 순간의 최적)으로만 선택하더라도 최적해를 구할 수 있다.

매 순간의 선택을 포함하는 최적해가 존재함을 증명해보이면 된다.

선택한 방법을 포함하지 않는 최적해의 존재를 가정하고 이를 적절히 조작해서

선택한 방법을 포함하는 최적해를 만들면 된다.

 

(2) 최적 부분 구조

최적의 선택만을 했을 때 전체문제의 최적해를 얻을 수 있다.

=부분문제의 최적해가 전체문제의 최적해를 만들 수 있음을 보여야된다.

왜냐하면 탐욕적 선택 후 남은 부분문제를 최적이 아닌 방법으로 풀어야 하는 경우도 있기 때문

'정리' 카테고리의 다른 글

c++ priority_queue  (0) 2022.01.14
segment tree  (0) 2021.07.12
Heavy-Light Decomposition  (0) 2021.07.07
LCA  (0) 2021.07.01
이항계수를 어떤수로 나눴을 때 값 구하기  (0) 2021.06.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
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
글 보관함