Hokusai

[4] 부분집합 구하기 - DFS 본문

알고리즘( C++ )/3. Etc

[4] 부분집합 구하기 - DFS

HOKUSAI 2019. 1. 4. 17:31
반응형

[문제]

1부터 N까지의 수 중 C개를 고르는 문제

1) 순서가 상관있는 경우(중복 有) - Code 1

2) 순서가 상관없는 경우(중복 無) - Code 2


=======================================================================

[Idea]

Recursion(재귀)를 통해서 완성할 수 있다. 기존 수를 가지고 있는 arr 배열, 해당 node를 방문했는지 확인하는 visited배열, 그리고 완성된 배열을 집어넣는 str배열이 있다. 재귀를 통해서 방문한 노드는 dfs를 하지않고 가는 식으로 진행한다. 


[Codes]

기본 main은 동일하다 .

<Code 1> : 순서 상관 有

<Code 2> : 순서 상관 無



이러한 경우는 다양한 문제에서 적용이 가능하다. 예를들어 몇개의 공을 뽑아 연산을 한다거나, 여러 집중 몇개의 집을 선택하여 문제를 푸는(치킨배달) 문제와 같은 경우에서 쉽게 적용이 가능하다!!!!




반응형

'알고리즘( C++ ) > 3. Etc' 카테고리의 다른 글

[6] 나잡아봐라~  (0) 2019.03.18
[5] 최단거리 구하기 - DFS  (0) 2019.01.04
[3] 소수의 합  (0) 2019.01.02
[2] 카드단어  (0) 2018.12.25
[1] 대탈주  (0) 2018.12.22
Comments