BOJ_S3_15656
๐ [S3_15656] N๊ณผM(7)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
	static StringTokenizer st;
	static StringBuilder sb;
	static int N,M;
	static int[] arr;
	static int[] res;
	static boolean[] v;
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		sb = new StringBuilder();
		
		st = new StringTokenizer(br.readLine()," ");
		
		N = Integer.parseInt(st.nextToken());
		
		M = Integer.parseInt(st.nextToken());
		
		arr = new int[N];
		
		// ์์ด ๊ตฌํ ๋ ์ฌ์ฉํ  ๋ฐฐ์ด
		res = new int[M];
		v = new boolean[N+1];
		
		// ๋ฐฐ์ด ๊ฐ ๋ฃ๊ธฐ
		st = new StringTokenizer(br.readLine()," ");
		for(int i=0; i<N; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}
		
		// ์ ๋ ฌํ๊ธฐ 
		Arrays.sort(arr);
		
		perm(0);
		System.out.println(sb);
	}
	
	static void perm(int idx) {
		// ๊ธฐ์ ์กฐ๊ฑด
		if(idx == M) {
			for(int i=0; i<M; i++) {
				sb.append(res[i]).append(" ");
			}
			sb.append("\n");
			return;
		}
		
		for(int i=0; i<N; i++) {
				v[i] = true;
				res[idx] = arr[i];
				perm(idx+1);
				v[i] = false;
		}
	}
}
๐ค ๋์ ์๊ฐ
์ด ๋ฌธ์ ๋ ์์๊ฐ ์๊ด์๊ธฐ ๋๋ฌธ์ ์์ด ๋ฌธ์ ์ด๋ค.
ํค ํฌ์ธํธ๋ ์๊ธฐ์์ ๋ ์ถ๋ ฅํ๊ธฐ ๋๋ฌธ์ v ๋ฐฐ์ด์ด true ์ผ๋ ์๋ตํ๋ ๋ถ๋ถ์ ์ญ์ ํ๋ค.
์๋ ์๋ตํ๋ ๋ถ๋ถ์ด ์์ผ๋ฉด (1, 1)์ด ์๋์ค๊ณ  1, ๋ค์๊ฐ์ด ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค.
์์ด์ ๋ํ ์์ธํ ์ค๋ช
์ ์ฌ๊ธฐ์ ์๋ค.