[그리디]

 

그리디 알고리즘은 매 순간마다의 선택은 최적이지만 결과값이 최적이라는걸 보장할수 없음.

탐욕적 선택 속성과 최적 부분 구조가 만족되면 최적의 결과값을 보장할 수 있다. (=매트로이드 구조 성립)

프림 알고리즘, 크루스칼 알고리즘, 다익스트라 알고리즘 등에 사용된다.

대표적인 문제는 거스름돈 문제. 하지만 동전이 임의의 금액 40원 등으로 설정된다면 최적의 해를 구할 수 없다.

문제를 보고 조건을 잘 설정하는게 중요한 것 같다.

 

 

 

[다이나믹 프로그래밍] =(동적 계획법, DP)

 

동적 계획법의 결과는 언제나 최적이지만 그리디 알고리즘에 비해 속도가 느리다.

중복 부분 해결과 최적 부분 구조가 성립되면 적용할 수 있다.

대표적인 문제는 피보나치 수열. 하향식(재귀)과 상향식(반복문)으로 구현할 수 있다.

보통 Bottom-up 방식이 많이 사용된다.

점화식을 세우는게 나에겐 가장 어렵다. 식만 세워지면 구현은 어렵지 않다

 

'알고리즘 > 공부' 카테고리의 다른 글

PS 활용 문법들  (0) 2022.12.29
코딩 테스트에서 자주 출제되는 기타 알고리즘  (0) 2022.07.22
위상정렬  (0) 2022.07.17
토막지식/짧은내용들 정리  (0) 2022.07.16
이코테 개념 정리  (0) 2022.07.14

+ Recent posts