CodingTest/Java
BOJ_15656 : N๊ณผ M (7)
Soom_1n
2022. 12. 14. 22:03
15656๋ฒ: N๊ณผ M (7)
N๊ฐ์ ์์ฐ์์ ์์ฐ์ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. N๊ฐ์ ์์ฐ์๋ ๋ชจ๋ ๋ค๋ฅธ ์์ด๋ค. N๊ฐ์ ์์ฐ์ ์ค์์ M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
www.acmicpc.net
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- n๊ฐ์ ์ ์ค์์ m๊ฐ์ ์๋ฅผ ๊ณจ๋ผ ์ถ๋ ฅํ๋ค.
- ์ฌ์ ์ ์ ๋ ฌ๋ก ์ถ๋ ฅํ๋ค.
- ์์ ์ค๋ณต์ ํ์ฉํ๋ค.
- ๋จ, ์์์ ์์๊ฐ ์์ ํ ๊ฐ์ ๊ฒฝ์ฐ๋ ์๋๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
private static void dfs(int[] arr, ArrayList<Integer> pick, int n, int m, StringBuilder sb) {
if (pick.size() == m) {
for (int i : pick) {
sb.append(i + " ");
}
sb.append("\n");
return;
}
for (int i = 0; i < n; i++) {
pick.add(arr[i]);
dfs(arr, pick, n, m, sb);
pick.remove(pick.size()-1);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
ArrayList<Integer> pick = new ArrayList<>();
StringBuilder sb = new StringBuilder();
dfs(arr, pick, n, m, sb);
System.out.print(sb.toString());
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- n๊ฐ์ ์๋ฅผ ๋ฐฐ์ด์ ์ ์ฅํ๊ณ ์ฌ๊ท ๋ฉ์๋๋ก ์๋ฅผ ๊ณจ๋ผ ArrayList์ ์ ์ฅํ๋ค.
- ArrayList์ ์๊ฐ m๊ฐ๊ฐ ๋๋ฉด ์ถ๋ ฅํ๋ค.
- ๋น ๋ฅธ ์ถ๋ ฅ์ ์ํด StringBuilder๋ฅผ ์ฌ์ฉํ๋ค.
๐ธ end ๐ธ
- N๊ณผ M ์๋ฆฌ์ฆ๋ ์ต์ํด์ ธ์ ์ฌ๊ท ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋๊ฑด ๊ฐ๋จํ์ง๋ง, ์ถ๋ ฅ๋๋ฌธ์ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฌ๋ค.
- StringBuilder๋ฅผ ์ฌ์ฉํด์ ํด๊ฒฐํ๋๋ฐ, ๊ผญ ์ต๋๊ฐ์ ๋ฃ์ด๋ณด๋ ๊ฑธ ์ต๊ดํ ํด์ผ๊ฒ ๋ค.
728x90