
n번째까지 고려했을 때 합이 m인 부분집합이 존재하는가?
합이 0인 것은 공집합이다.
- 이전에 만든 값이 이미 원하는 합을 만들어놨는가? -> 그렇다면 만들 수 있으므로 true
- 아니면 이번에 새로 추가를 하면 원하는 합이 만들어지는가? 현재 원하는 합에서 새로 추가한 값을 뺀 경우가 만들어져 있는가? -> 그렇다면 만들 수 있으므로 true
optimal substructure를 갖고 있으므로 새로 추가된 값에 대해서만 고려한다.
작은 부분에 대해서는 이미 다 구했다고 가정한다.
부분집합을 찾고자 한다면 n번째까지 고려했을 때 가능한지 생각해봐야한다.

[동적 프로그래밍 예제] 부분집합의 합(C언어)
[동적 프로그래밍(DP)] 부분집합의 합 본 포스팅은 도서 "문제로 풀어보는 알고리즘"(황인욱, 김용혁 지음)을 공부한 내용을 정리하기 위한 글임을 밝힙니다. 동적 프로그래밍(Dynamic Programming)이란
readystory.tistory.com
'Algorithm > Etc' 카테고리의 다른 글
Deque (0) | 2021.05.21 |
---|---|
DP 하면서 틀리는 것 / DFS하면서 틀리는 것 (0) | 2021.05.11 |
Union find (0) | 2020.11.20 |
Graph 사이클 찾기 (0) | 2020.11.14 |
Topology sort(위상 정렬) (0) | 2020.11.12 |