ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • boj)15663 - N과 M (9)
    PS/boj 2020. 11. 18. 14:16
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    import 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;

     

     

     

     


    www.acmicpc.net/problem/15663

    '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
킹수빈닷컴