반응형
package N과M;
import java.util.*;
public class N과M7 {
public static boolean visit[];
public static int arr[];
public static int num[];
public static int N, M;
public static StringBuilder sb;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = "";
sb = new StringBuilder(s);
N = sc.nextInt();
M = sc.nextInt();
visit = new boolean[N];
arr = new int[M];
num = new int[N];
for (int i = 0; i < N; i++) {
num[i] = sc.nextInt();
}
Arrays.sort(num);
permutation(0);
System.out.println(sb);
}
public static void permutation(int cnt) {
if (cnt == M) {
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i] + " ");
}
sb.append("\n");
return;
}
for (int i = 0; i < N; i++) {
arr[cnt] = num[i];
permutation(cnt + 1);
}
}
}
StringBuilder의 append를 통해 하나의 객체에 담아 한번만 호출해 주어야 한다.
만약 하나하나 print 함수를 호출하게 된다면 시간초과가 발생한다.
반응형
'2. 알고리즘사이트 > 1. 백준' 카테고리의 다른 글
N과M(9) -오름차순 순열(중복 요소 제거)- (0) | 2020.03.01 |
---|---|
N과M(8) -오름차순 중복조합 (StringBuilder)- (0) | 2020.03.01 |
N과M(6) -오름차순 조합- (0) | 2020.03.01 |
N과M(5) -오름차순 순열- (0) | 2020.03.01 |
N과M(4) -중복조합- (0) | 2020.03.01 |