코딩테스트/백준
백준 15654 : N과 M (5) _자바 Java
플래시🦥
2023. 1. 18. 11:32
반응형
https://www.acmicpc.net/problem/15654
15654번: N과 M (5)
N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main {
static int[] num,arr;
static boolean visit[];
static int N,M;
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str= br.readLine();
StringTokenizer st = new StringTokenizer(str," ");
N=Integer.parseInt(st.nextToken()); //N개의 자연수
M=Integer.parseInt(st.nextToken()); //수열의 길이 M
num= new int[N];
arr=new int[M];
visit=new boolean[N];
st = new StringTokenizer(br.readLine()," ");
for(int i=0;i<N;i++) {
num[i]=Integer.parseInt(st.nextToken());
}
Arrays.sort(num);
bt(0);
System.out.println(sb);
}//main()
static void bt(int depth) {
if(M==depth) {
for(int i:arr)
sb.append(i+" ");
sb.append("\n");
return;
}
for(int i=0;i<N;i++) {
if(!visit[i]) {
visit[i]=true;
arr[depth]=num[i];
bt(depth+1);
visit[i]=false;
}
}
}//dt()
}//class Main
728x90
반응형