www.acmicpc.net/problem/10974www.acmicpc.net/problem/15649
문제 해석
n과 M이 입력되었을때
n까지의 수 중에서 M개를 골라 만들 수 있는 수열을 출력하라
문제 풀이
이전 문제의 백트레킹 방법을 그대로 사용하되
깊이에 해당하는 조건을 추가하면 된다
import java.util.*;
public class Main {
static int[] checked;
static int N, D;
static ArrayList<Integer> list;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
D = sc.nextInt();
checked = new int[N + 1];
list = new ArrayList<Integer>();
dfs(0);
}
public static void dfs(int d){
if(list.size() == D){
for(Integer i : list){
System.out.print(i + " ");
}System.out.println();
}
for(int i = 1 ; i <= N; i++){
if(checked[i] != 1) {
checked[i] = 1;
list.add(i);
dfs(d + 1);
checked[i] = 0;
list.remove(list.size() - 1);
}
}
}
}
'알고리즘 문제 풀이' 카테고리의 다른 글
[백준] DFS와 DFS (0) | 2021.04.22 |
---|---|
[백준] N과 M(2) (0) | 2021.04.22 |
[백준] 모든 순열 (0) | 2021.04.16 |
[프로그래머스] 2 x n 타일 (0) | 2021.04.15 |
[프로그래머스] 섬 연결하기 (0) | 2021.04.12 |
댓글