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