문제 해석
코드
import java.io.*;
import java.util.StringTokenizer;
public class Main {
static int N;
static int M;
static int[] list;
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
list = new int[M];
backTracking(1, 0);
br.close();
System.out.println(sb);
}
static void backTracking(int start, int row) {
if (row == M) {
for(int value : list){
sb.append(value + " ");
}
sb.append("\n");
return;
}
for (int i = 1; i <= N; i++) {
if(i >= start){
list[row] = i;
backTracking(i,row+1);
}
}
}
}
결과
느낀 점
- 이번 문제도 N과 M(3)문제와 같이 빠르게 풀 수 있었다.