[백준] 15649 N과 M (01), Go/Java
0. 들어가면서
N과 M (01)
백트래킹 문제이다.
1. Java
1.1 내가 푼 코드
package bj.ch12_Backtracking;
import java.io.*;
import java.util.*;
public class BJ_15649_N과M_01_01 {
static int[] arr;
static boolean[] visited;
static int N, M;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
arr = new int[M];
visited = new boolean[N];
nPr(0);
}
private static void nPr(int count) {
if (count == M) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < M; i++) {
sb.append(arr[i]);
sb.append(" ");
}
sb.substring(0, sb.length() - 1);
System.out.println(sb.toString());
return;
}
for (int i = 0; i < N; i++) {
if (visited[i]) {
continue;
}
arr[count] = i + 1;
visited[i] = true;
nPr(count + 1);
visited[i] = false;
}
}
}
1.2 해설
- nPr 을 구하는 문제이다.
2. Go
CLOSING
쉬웠다.
Leave a comment