์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [S3_15655] N๊ณผM(6)

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);
		
		comb(0,0);
		System.out.println(sb);
	}
	
	// ์ˆœ์„œ๊ฐ€ ์ƒ๊ด€์—†๊ธฐ ๋•Œ๋ฌธ์— ์กฐํ•ฉ
	static void comb(int idx, int start) {
		// ๊ธฐ์ €์กฐ๊ฑด
		if(idx == M) {
			for(int i=0; i<M; i++) {
				sb.append(res[i]).append(" ");
			}
			sb.append("\n");
			return;
		}
		
		for(int i=start; i<N; i++) {
			if(v[i]) {
				continue;
			}
			else {
				v[i] = true;
				res[idx] = arr[i];
				comb(idx+1, i+1);
				v[i] = false;
			}
        }
	}
}

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

์ด ๋ฌธ์ œ๋Š” ์ˆœ์„œ๊ฐ€ ์ƒ๊ด€์—†๊ธฐ ๋•Œ๋ฌธ์— ์กฐํ•ฉ๋ฌธ์ œ์ด๋‹ค.
์ž…๋ ฅ ๋ฐ›์€ ๊ฐ’๋“ค์„ ์ •๋ ฌ์‹œํ‚ค๊ณ  ์กฐํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณผ์ •์„ ๊ฑฐ์ณ์ฃผ๋ฉด ๋œ๋‹ค.
์ˆœ์„œ๊ฐ€ ์ƒ๊ด€์—†๋‹ค๋Š” ์˜๋ฏธ๋Š” (1,2) ๊ฐ€ (2,1) ์ด๋ž‘ ๊ฐ™์€ ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. ๊ทธ๋ž˜์„œ ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
์กฐํ•ฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค.

ํƒœ๊ทธ: , , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: