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

๐Ÿ“ [S3_15657] N๊ณผM(8)

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;

	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];

		// ๋ฐฐ์—ด ๊ฐ’ ๋„ฃ๊ธฐ
		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;
		}
		else {
			for(int i=start;i<N;i++) {
			res[idx] = arr[i];
			comb(idx+1, i);	
			}
		}
	}
}

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

์ด ๋ฌธ์ œ๋Š” ์ˆœ์„œ๊ฐ€ ์ƒ๊ด€์—†๊ธฐ ๋•Œ๋ฌธ์— ์กฐํ•ฉ๋ฌธ์ œ์ด๋‹ค.
์ด ๋ฌธ์ œ์˜ ํ‚ค ํฌ์ธํŠธ๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํฌํ•จํ•˜๊ธฐ ๋–„๋ฌธ์— ์›๋ž˜ ์žฌ๊ท€๋ฅผ ๋Œ๋ฆด๋•Œ (idx+1, i+1)๋ฅผ ์ฃผ๋Š”๋ฐ i+1๋ฅผ ์•ˆ์ฃผ๊ณ  i๋ฅผ ์ค€๋‹ค.
๊ทธ๋ž˜์„œ ๋ณธ์ธ๋ณด๋‹ค ํ•˜๋‚˜ ๋” ํฐ ๊ฐ’๋ถ€ํ„ฐ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ณธ์ธ ๊ฐ’๋ถ€ํ„ฐ ํ™•์ธ์„ ํ•œ๋‹ค. ์กฐํ•ฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค.

ํƒœ๊ทธ: , , ,

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

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