이 전의 글과 같이 백트래킹을 이용하여 풀었다.
[소스코드]
package algorithm15650;
import java.util.*;
public class Main {
static int n, m;
static int a[];
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
n = sc.nextInt();//수 입력
m = sc.nextInt();//한줄당 개수 입력
a = new int[m];
go(1,0);
}
public static void go(int index,int depth) {
//인덱스가 마지막 위치에 도달하면 수열 출력
if(depth == m) {
for(int val:a) {
System.out.print(val + " ");
}
System.out.println();
return;
}
// 1부터 ~ N개의 수를 선택
for(int i=index; i<=n; i++) {
a[depth]=i;
go(i,depth+1);
}
}
}
'BaekJoon' 카테고리의 다른 글
16953번:A → B[Java] (0) | 2022.09.01 |
---|---|
15654번: N과 M (5)[Java] (0) | 2022.09.01 |
15650번:N과 M (2) [Java] (0) | 2022.08.31 |
17144번:미세먼지 안녕![Java] (0) | 2022.08.30 |
1149번:RGB거리[Java] (0) | 2022.08.30 |