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

๐Ÿ“ [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, ๋‹ค์Œ๊ฐ’์ด ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ˆœ์—ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค.

ํƒœ๊ทธ: , , ,

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

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