๐ ํ๋ก๊ทธ๋๋จธ์ค / ์์ ํ์ / Level2 / ์์ ์ฐพ๊ธฐ
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ๋ฌธ์
ํ์๋ฆฌ ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์์ต๋๋ค. ํฉ์ด์ง ์ข ์ด ์กฐ๊ฐ์ ๋ถ์ฌ ์์๋ฅผ ๋ช ๊ฐ ๋ง๋ค ์ ์๋์ง ์์๋ด๋ ค ํฉ๋๋ค.
๊ฐ ์ข ์ด ์กฐ๊ฐ์ ์ ํ ์ซ์๊ฐ ์ ํ ๋ฌธ์์ด numbers๊ฐ ์ฃผ์ด์ก์ ๋, ์ข ์ด ์กฐ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ ์์๊ฐ ๋ช ๊ฐ์ธ์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ซ ์ ํ ์ฌํญ
- numbers๋ ๊ธธ์ด 1 ์ด์ 7 ์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค.
- numbers๋ 0~9๊น์ง ์ซ์๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- "013"์ 0, 1, 3 ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์๋ค๋ ์๋ฏธ์ ๋๋ค.
๐ ์ ์ถ๋ ฅ ์
| numbers | return |
| "17" | 3 |
| "011" | 2 |
๐ค ํ์ด ๋ฐฉ๋ฒ
1๏ธโฃ ๋ฐฐ์ด์ ์์๋ก ์์ ํ์์ ํ๋ ๋ฐฉ๋ฒ โก๏ธ ์์ด์ ํตํ ํ์
โ์์ด
โก๏ธ n ๊ฐ์ ๊ฐ ์ค์์ r ๊ฐ์ ์ซ์๋ฅผ ์ค๋ณต ์์ด ์์๋๋ก ๋ฝ๋ ๋ฐฉ๋ฒ (nPr)
ex) [1, 2, 3] ์์์ 3P2 โก๏ธ 3x2 = 6
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
โ swap ํจ์ ํ์ฉ (๋ด๊ฐ์ ํํ ๋ฐฉ๋ฒ)
static void permutation(int[] arr, int depth, int n, int r) {
if (depth == r) {
print(arr, r);
return;
}
for (int i=depth; i<n; i++) {
swap(arr, depth, i);
permutation(arr, depth + 1, n, r);
swap(arr, depth, i);
}
}
static void swap(int[] arr, int depth, int i) {
int temp = arr[depth];
arr[depth] = arr[i];
arr[i] = temp;
}
โก visited ๋ฐฐ์ด ํ์ฉ
static void perm(int[] arr, int[] output, boolean[] visited, int depth, int n, int r) {
if (depth == r) {
print(output, r);
return;
}
for (int i=0; i<n; i++) {
if (visited[i] != true) {
visited[i] = true;
output[depth] = arr[i];
perm(arr, output, visited, depth + 1, n, r);
visited[i] = false;;
}
}
}
๐ป ํ์ด ์ฝ๋
[level 2] Title: ์์ ์ฐพ๊ธฐ, Time: 5.06 ms, Memory: 75 MB -BaekjoonHub · Young998904/Practice_Algorithm_Auto@53b1ed8
Show file tree Showing 2 changed files with 148 additions and 0 deletions.
github.com
๐ ์ฐธ๊ณ
โ (JAVA) ์์ด๊ณผ ์กฐํฉ
[๊ฐ๋ ] ์์ ํ์ ๊ธฐ๋ฒ - ์์ด, ์กฐํฉ, ์ค๋ณต ์์ด, ์ค๋ณต ์กฐํฉ ํธ (Java)
์ฝํ ์์ ๊ธฐ๋ณธ์ ๊ธฐ๋ณธ์ด ๋๋ ์์ ํ์ ๊ธฐ๋ฒ! ์๋์ ์ฝ๋๋ฅผ ์ถฉ๋ถํ ์ตํ ์ํ ๋ฌธ์ ๋ ํ๋ฆฌ์ง ์๋๋ก ์ฐ์ตํ์. import java.util.Scanner; public class Main { static int[] arr = { 1, 2, 3, 4, 5, 6 }; static int M; static
kong-ambition09.tistory.com
โก (JAVA) ์์ด ๊ตฌํ โก๏ธ 1. swap ํจ์ / 2. visited ๋ฐฐ์ด
์์ด Permutation (Java)
์์ด์ฐ์ต ๋ฌธ์ ์์ด์ด๋ n ๊ฐ์ ๊ฐ ์ค์์ r ๊ฐ์ ์ซ์๋ฅผ ๋ชจ๋ ์์๋๋ก ๋ฝ๋ ๊ฒฝ์ฐ๋ฅผ ๋งํฉ๋๋ค. ์๋ฅผ ๋ค์ด [1, 2, 3] ์ด๋ผ๋ 3 ๊ฐ์ ๋ฐฐ์ด์์ 2 ๊ฐ์ ์ซ์๋ฅผ ๋ฝ๋ ๊ฒฝ์ฐ๋ [1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3,
bcp0109.tistory.com
'Coding Test ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| (์๊ณ ๋ฆฌ์ฆ ์คํฐ๋) 2์ฃผ์ฐจ ๊ธ _ ์์ ํ์๐_ (Programmers) ๋ชจ์์ฌ์ (0) | 2022.12.30 |
|---|---|
| (์๊ณ ๋ฆฌ์ฆ ์คํฐ๋) 2์ฃผ์ฐจ ์ _ ์์ ํ์๐_ (Programmers) ํผ๋ก๋ (0) | 2022.12.27 |
| [Programmers] Level 1 Java ๋ฌธ์ ํ์ด (3) (0) | 2022.12.08 |
| [Programmers] Level 2 Java ๋ฌธ์ ํ์ด (4) (0) | 2022.12.08 |
| [Programmers] Level 2 Java ๋ฌธ์ ํ์ด (3) (0) | 2022.11.13 |