Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
36 lines (31 loc) · 1.17 KB

File metadata and controls

36 lines (31 loc) · 1.17 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package ch12;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
public class P38_1 {
public void dfs(List<List<Integer>> results, LinkedList<Integer> elements, int n, int start, int k) {
// k번째 노드에 도달하면 결과에 추가
if (k == 0) {
// 자바 8+의 스트림을 이용해 elements의 내용을 결과에 삽입
results.add(elements.stream().collect(Collectors.toList()));
return;
}
// 현재 엘리먼트 이후 엘리먼트 탐색
for (int i = start; i <= n; i++) {
// 전달받은 엘리먼트에 더해 현재 엘리먼트 추가
elements.add(i);
// 재귀 DFS
dfs(results, elements, n, i + 1, k - 1);
// 돌아온 이후에는 현재 엘리먼트 삭제
elements.removeLast();
}
}
public List<List<Integer>> combine(int n, int k) {
// 결과 저장 리스트 선언
List<List<Integer>> results = new ArrayList<>();
// DFS 시작
dfs(results, new LinkedList<>(), n, 1, k);
return results;
}
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.