hyeals study
[백준 15650] [백트래킹] [JAVA] N과M(2) 본문
import java.util.Scanner;
public class Main {
static int N;
static int M;
static boolean[] visited;
static int[] answer;
static StringBuilder ans = new StringBuilder();
static void backtracking(int num){
if(num==M){
for(int i=0; i<M; i++){
ans.append(answer[i]+" ");
}
ans.append("\n");
return;
}
for(int i=1; i<=N; i++){
if(!visited[i]){
visited[i] = true;
answer[num] = i;
if(num!=0 && answer[num] < answer[num-1]){ // 15649번과의 차이: 지금 값이 앞에 있는 값보다 작을 때 다시 FOR문으로 돌아가기
visited[i] = false;
continue;
}
backtracking(num+1);
visited[i] = false;
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
M = sc.nextInt();
visited = new boolean[N+1];
answer = new int[N+1];
backtracking(0);
System.out.println(ans);
}
}
'백준' 카테고리의 다른 글
[백준 15652번] [백트래킹] [JAVA] N과M(4) (0) | 2020.09.18 |
---|---|
[백준 15651] [백트래킹] [JAVA] N과M(3) (0) | 2020.09.09 |
[백준 15649] [백트래킹] [JAVA] N과M(1) (0) | 2020.09.08 |
[백준 1436] [브루트포스] [JAVA] 영화감독 숌 (0) | 2020.09.08 |
[백준 2231] [브루트포스] [JAVA] 분해합 (0) | 2020.09.08 |
Comments