โ๏ธ ๋ถ๋ฅ
๋ฐฑํธ๋ํน
๐ ๋ฌธ์ ์ค๋ช
์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- 1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
- ๊ณ ๋ฅธ ์์ด์ ์ค๋ฆ์ฐจ์์ด์ด์ผ ํ๋ค.
โจ๏ธ ์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 โค M โค N โค 8)
๐ฅ๏ธ ์ถ๋ ฅ
ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค.
์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค.
๐ ๋ฌธ์ ํด๊ฒฐ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static int N, M;
public static StringBuilder sb = new StringBuilder();
public static boolean[] visited;
public static int[] arr;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
N = Integer.parseInt(str[0]);
M = Integer.parseInt(str[1]);
visited = new boolean[N];
arr = new int[M];
dfs(1, 0);
System.out.println(sb);
}
public static void dfs(int at, int d) {
if (d == M) {
for (int num : arr) {
sb.append(num).append(" ");
}
sb.append("\n");
return;
}
for (int next = at; next <= N; next++) {
arr[d] = next;
dfs(next + 1, d + 1);
}
}
}
'๐ algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ๋ฐฑ์ค 2447 ๋ณ์ฐ๊ธฐ - 10 JAVA ๋ฌธ์ ํ์ด (2) | 2024.03.24 |
---|---|
[Algorithm] ๋ณํฉ์ ๋ ฌ์ ๋ํด ์์๋ณด์ !! ๐ (0) | 2024.03.21 |
[๋ฐฑ์ค] 2527 ์ง์ฌ๊ฐํ Java ๋ฌธ์ ํ์ด (1) | 2024.02.08 |
[๋ฐฑ์ค] 2477 ์ฐธ์ธ๋ฐญ Java ํ์ด (0) | 2024.02.07 |
[๋ฐฑ์ค] 2564 ๊ฒฝ๋น์ Java ๋ฌธ์ ํ์ด (์ผ์ฑ sw ์ญ๋ํ ์คํธ IM ๋๋น - 4) (2) | 2024.02.06 |
โ๏ธ ๋ถ๋ฅ
๋ฐฑํธ๋ํน
๐ ๋ฌธ์ ์ค๋ช
์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- 1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
- ๊ณ ๋ฅธ ์์ด์ ์ค๋ฆ์ฐจ์์ด์ด์ผ ํ๋ค.
โจ๏ธ ์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 โค M โค N โค 8)
๐ฅ๏ธ ์ถ๋ ฅ
ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค.
์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค.
๐ ๋ฌธ์ ํด๊ฒฐ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static int N, M;
public static StringBuilder sb = new StringBuilder();
public static boolean[] visited;
public static int[] arr;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
N = Integer.parseInt(str[0]);
M = Integer.parseInt(str[1]);
visited = new boolean[N];
arr = new int[M];
dfs(1, 0);
System.out.println(sb);
}
public static void dfs(int at, int d) {
if (d == M) {
for (int num : arr) {
sb.append(num).append(" ");
}
sb.append("\n");
return;
}
for (int next = at; next <= N; next++) {
arr[d] = next;
dfs(next + 1, d + 1);
}
}
}
'๐ algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ๋ฐฑ์ค 2447 ๋ณ์ฐ๊ธฐ - 10 JAVA ๋ฌธ์ ํ์ด (2) | 2024.03.24 |
---|---|
[Algorithm] ๋ณํฉ์ ๋ ฌ์ ๋ํด ์์๋ณด์ !! ๐ (0) | 2024.03.21 |
[๋ฐฑ์ค] 2527 ์ง์ฌ๊ฐํ Java ๋ฌธ์ ํ์ด (1) | 2024.02.08 |
[๋ฐฑ์ค] 2477 ์ฐธ์ธ๋ฐญ Java ํ์ด (0) | 2024.02.07 |
[๋ฐฑ์ค] 2564 ๊ฒฝ๋น์ Java ๋ฌธ์ ํ์ด (์ผ์ฑ sw ์ญ๋ํ ์คํธ IM ๋๋น - 4) (2) | 2024.02.06 |