Tags
- CodingTest
- ๊ต์ฌ
- ์๋ฎฌ๋ ์ด์
- ๊ทธ๋ํ ํ์
- ์ ๋ ฌ
- Study
- dfs
- Python
- ์ํ
- ๊น์ด ์ฐ์ ํ์
- ๊ทธ๋ํ ์ด๋ก
- ๊ตฌํ
- queue
- PGM
- ์๋ฃ๊ตฌ์กฐ
- Brute Force Algorithm
- ๋ฐฑํธ๋ํน
- LV2
- greedy
- ์ ์๋ก
- BFS
- ๋ฌธ์์ด
- stack
- Dynamic Programming
- Java
- BOJ
- ๋๋น ์ฐ์ ํ์
- SpringBoot
- sort
- DP
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_15351 : ์ธ์ ์ ์ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- n๊ฐ์ ์์์ m๊ฐ๋ฅผ ๊ณ ๋ฅด๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
- ๊ณ ๋ฅธ ํ๋ ฌ์ด ์ค๋ณต๋์ง ์๊ฒ ํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
private static void dfs(ArrayList<Integer> pick, int[] arr, int n, int m, int k) {
if (pick.size() == m) {
for (int i : pick) {
System.out.print(i + " ");
}
System.out.println();
return;
}
for (int i = k; i < n; i++) {
if (!pick.contains(arr[i])){
pick.add(arr[i]);
dfs(pick, arr, n, m, i);
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);
dfs(new ArrayList<>(), arr, n, m, 0);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ฌ๊ท ๋ฉ์๋ dfs๋ก ์๋ฅผ ์ ํํด ArrayList์ ๋ด๊ณ m๊ฐ๊ฐ๋๋ฉด ์ถ๋ ฅํ๋ค.
- ์์ด์ ์ค๋ณต์ ํผํ๊ธฐ ์ํด ์ด๋ ์ธ๋ฑ์ค๊น์ง ArrayList์ ๋ด์๋์ง k์ ๊ธฐ๋กํ๋ค.
๐ธ end ๐ธ
- ์ค๋ณต์ ํผํ๋ ๋ฐฉ๋ฒ์ ์ธํธ์ ๋จ์์ผํ๋์ง ์๊ฐํ๋ค ๋ฌด์กฐ๊ฑด ์ค๋ฆ์ฐจ์์ด๋ผ๋ ๊ฒ์ ์๊ฐํ๊ณ k๋ฅผ ์ฌ์ฉํ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_15657 : N๊ณผ M (8) (0) | 2022.12.15 |
---|---|
BOJ_15656 : N๊ณผ M (7) (0) | 2022.12.14 |
BOJ_15654 : N๊ณผ M (5) (0) | 2022.12.14 |
BOJ_15652 : N๊ณผ M (4) (0) | 2022.12.11 |
BOJ_15651 : N๊ณผ M (3) (0) | 2022.12.10 |