본문 바로가기

Algorithm/Etc

[DP] 부분집합의 합

 

 

 

 

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