Algorithm 문제풀이
백준 N과M(3)
cjsong
2019. 3. 17. 20:22
import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main{private static int[] arr;private static StringBuilder sb;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.readLine(), " ");int N = Integer.parseInt(st.nextToken());int M = Integer.parseInt(st.nextToken());sb = new StringBuilder();arr = new int[N];int[] a = new int[N]; // 인덱스를 관리하는 배열for (int i = 0; i < N; i++) {arr[i] = i + 1;}int depth = 0;backtrack(a, depth ,M);System.out.println(sb);}public static void backtrack(int[] a, int depth, int M) {if(depth == M ) {for (int j = 0; j < M; j++) {sb.append(arr[a[j]]).append(" ");}sb.append("\n");return;}for (int i = 0; i < a.length; i++) {a[depth] = i;backtrack(a, depth+1, M);}}}