-
boj)15663 - N과 M (9)PS/boj 2020. 11. 18. 14:16123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657import java.io.*;import java.util.*;public class boj_15663 {static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));static StringTokenizer st;static boolean[] v = new boolean[10];static int[] a = new int[10];static int[] val;static int n, m;public static void main(String[] args) throws IOException {st = new StringTokenizer(br.readLine());n = Integer.parseInt(st.nextToken());m = Integer.parseInt(st.nextToken());val = new int[n];st = new StringTokenizer(br.readLine());for (int i = 0; i < n; i++) {val[i] = Integer.parseInt(st.nextToken());}Arrays.sort(val);func(0);bw.flush();bw.close();}static void func(int k) throws IOException {if (k == m) {for (int i = 0; i < m; i++) {bw.append(a[i] + " ");}bw.newLine();return;}int before = 0;for (int i = 0; i < n; i++) {if (v[i]) continue;if (i != 0 && before == val[i]) continue;before = val[i];a[k] = val[i];v[i] = true;func(k + 1);v[i] = false;}}}
cs - 백트래킹
- 중복값 처리를 해줘야해서 따로 변수 before을 만듬
- 매번 before 초기화 해주고 같으면 continue;
'PS > boj' 카테고리의 다른 글
boj)15664 - N과 M (10) (0) 2020.11.19 boj)2448 - 별 찍기 - 11 (0) 2020.11.19 boj)15656 - N과 M (8) (0) 2020.11.18 boj)15656 - N과 M (7) (0) 2020.11.18 boj)15655 - N과 M (6) (0) 2020.11.17