hyeals study
[백준 15649] [백트래킹] [JAVA] N과M(1) 본문
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;
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);
}
}
- 방문했는지 체크한 이유: 중복을 허용하지 않기 때문에
+ 추가적으로 공부해야 할 부분: 메모리와 시간 줄일 수 있는 방법
'백준' 카테고리의 다른 글
[백준 15651] [백트래킹] [JAVA] N과M(3) (0) | 2020.09.09 |
---|---|
[백준 15650] [백트래킹] [JAVA] N과M(2) (0) | 2020.09.08 |
[백준 1436] [브루트포스] [JAVA] 영화감독 숌 (0) | 2020.09.08 |
[백준 2231] [브루트포스] [JAVA] 분해합 (0) | 2020.09.08 |
[백준 2798] [브루트 포스] [JAVA] 블랙잭 (0) | 2020.09.06 |
Comments