Lewis's Tech Keep
[백준] N과 M 본문
참고 : www.acmicpc.net/problem/15649
- 백트래킹 기본 문제
- 따라가면서 이게 왜 백트래킹이 되는 지 왜 재귀가 필요한 지 이해함.
더보기
import java.util.Scanner;
public class Main{
private static int n, m;
private static int[] arr = new int[10];
private static boolean[] isused = new boolean[10];
private static void backtracking(int k) {
if(k == m) {
for (int i = 0; i < m; i++) {
System.out.print(arr[i] + " ");
}
System.out.print("");
return;
}
for (int i = 1; i <= n; i++) {
if(!isused[i]) {
arr[k] = i;
isused[i] = true;
backtracking(k+1);
isused[i] = false;
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
backtracking(0);
}
}
'Java > 알고리즘' 카테고리의 다른 글
[백준] 부분수열의 합 (0) | 2021.03.07 |
---|---|
[백준] N-Queen (0) | 2021.03.07 |
[백준] 1로 만들기 -2 (0) | 2021.03.06 |
[백준] 구간 합 구하기 4 (0) | 2021.03.06 |
[백준] RGB 거리 (0) | 2021.03.06 |
Comments