소소한 컴퓨터 이야기

부분 집합

by Cori

문제

모든 부분 집합을 리턴하라 

 

· 입출력 예 

num_list return
[1, 2, 3] [[3], [1], [2], [1, 2, 3], [1, 3], [2, 3], [1, 2], []]

풀이

입력값으로 트리를 구성하고, 트리를 DFS하는 문제로 풀이할 수 있다.

경로 (path)를 만들어 나가면서, 인덱스를 1씩 증가하는 형태로 깊이 우선 탐색을 진행하였다. 별도의 종료 조건이 없기 때문에, 탐색이

끝나면 저절로 함수가 종료된다. 입력받은 숫자 배열로 만들 수 있는 모든 부분 집합들이 정답이기 떄문에, dfs를 진행할 때마다 결과

배열에 값을 추가하고, 이를 반환하는 형태로 문제를 풀었다.

'CS > Coding Test' 카테고리의 다른 글

중복 문자 없는 가장 긴 부분 문자열  (0) 2021.10.09
이진수 변환  (0) 2021.10.08
팩토리얼  (2) 2021.10.07
전화번호 문자 조합  (0) 2021.10.06
섬의 개수  (0) 2021.10.05

블로그의 정보

코딩하는 오리

Cori

활동하기