Skip to content

Commit dfd15ec

Browse files
authored
Create 15654_N과 M (5).java
1 parent 5c0fdce commit dfd15ec

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

15654_N과 M (5).java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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+
}

0 commit comments

Comments
 (0)