File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+ import java .io .BufferedReader ;
2
+ import java .io .IOException ;
3
+ import java .io .InputStreamReader ;
4
+ import java .util .*;
5
+
6
+ public class Main {
7
+ static int N , M ;
8
+ static int [] arr ;
9
+ static ArrayList <Integer > list = new ArrayList <>();
10
+ static boolean [] v ; //방문배열
11
+ static StringBuilder sb = new StringBuilder (); //안쓰면 시간초과
12
+ public static void main (String [] args ) throws IOException {
13
+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
14
+ StringTokenizer st = new StringTokenizer (br .readLine ());
15
+
16
+ N = Integer .parseInt (st .nextToken () );
17
+ M = Integer .parseInt (st .nextToken () );
18
+
19
+ st = new StringTokenizer (br .readLine ());
20
+ for (int i =0 ; i <N ; i ++) { //입력값 리스트 추가
21
+ list .add (Integer .parseInt (st .nextToken ()));
22
+ }
23
+
24
+ Collections .sort (list ); //오름차순 정렬
25
+
26
+ arr = new int [M ];
27
+ v = new boolean [10055 ];
28
+
29
+ Perm (0 );
30
+ System .out .println (sb );
31
+ }
32
+
33
+ private static void Perm (int cnt ) {
34
+ if (cnt == M ) {
35
+ //출력
36
+ for (int i =0 ; i <arr .length ; i ++) {
37
+ sb .append (arr [i ] + " " );
38
+ }
39
+ sb .append ("\n " );
40
+ } else {
41
+ for (int i =0 ; i <list .size (); i ++) {
42
+ int idx = list .get (i );
43
+ if (!v [idx ]) { //방문 검사
44
+ v [idx ] = true ;
45
+ arr [cnt ] = idx ;
46
+ Perm (cnt + 1 );
47
+ v [idx ] = false ;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
You can’t perform that action at this time.
0 commit comments