알고리즘/백준

[백트래킹] 백준_15649_N과M(1) _백트래킹_실버3

vell_zero 2021. 10. 3. 15:11

2021년 10월 03일 일요일 15시

 

[백트래킹] 백준_15649_N과M(1) _백트래킹_실버3

 

https://www.acmicpc.net/problem/15649

 

15649번: N과 M (1)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

 

import java.util.Scanner;

public class Main{
	
	public static boolean[] visit;
	public static int[] arr;
	
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		int N = in.nextInt();
		int M = in.nextInt();
		
		
		visit = new boolean[N];
		arr = new int[M];
		dfs(N,M,0);
	}
	
	public static void dfs(int N, int M, int depth) {
		if(depth == M) {
			for(int val: arr) {
				System.out.print(val + " ");
			}
			System.out.println();
			return;
		}
		
		for(int i=0; i<N; i++) {
			if( !visit[i]) {
				visit[i] = true;
				arr[depth] = i +1;
				dfs(N,M, depth + 1);
				visit[i] = false;
			}
		}
		
	}
	
}

 

 

 

<참고>

https://st-lab.tistory.com/114

 

[백준] 15649번 : N과 M (1) - JAVA [자바]

www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열

st-lab.tistory.com

https://iseunghan.tistory.com/229

 

백준 15649번 : N과 M(1) (JAVA) 문제 풀이

www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열

iseunghan.tistory.com