https://www.acmicpc.net/problem/15649
[1] ๋ฌธ์
๋ฌธ์
์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- 1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ M ≤ N ≤ 8)
์ถ๋ ฅ
ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค.
์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค.
์์ ์
๋ ฅ 1
3 1
์์ ์ถ๋ ฅ 1
1
2
3
์์ ์ ๋ ฅ 2
4 2
์์ ์ถ๋ ฅ 2
1 2
1 3
1 4
2 1
2 3
2 4
3 1
3 2
3 4
4 1
4 2
4 3
์์ ์
๋ ฅ 3
4 4
์์ ์ถ๋ ฅ 3
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
2 4 1 3
2 4 3 1
3 1 2 4
3 1 4 2
3 2 1 4
3 2 4 1
3 4 1 2
3 4 2 1
4 1 2 3
4 1 3 2
4 2 1 3
4 2 3 1
4 3 1 2
4 3 2 1
[2] ๋ด๊ฐ ์๊ฐํ ๋ต_์ค๋ต
#include <stdio.h>
int main() {
int N, M;
scanf("%d %d", &N, &M);
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
if (i == j) continue; // ์ค๋ณต ์ ๊ฑฐ
for (int k = 1; k <= N; k++) {
if (i == k || j == k) continue; // ์ค๋ณต ์ ๊ฑฐ
printf("%d %d %d\n", i, j, k);
}
}
}
return 0;
}
์ฃผ์ด์ง ๋ฌธ์ ์ ์กฐ๊ฑด ์ค "์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค"๋ฅผ ๋ง์กฑํ์ง ๋ชปํ๊ณ ์๋ค.
ํ์ฌ์ ์ฝ๋์์๋ ์์๋ฅผ ์ ๋๋ก ๊ณ ๋ คํ์ง ์๊ณ ์ถ๋ ฅํ๊ณ ์๋ค.
[3] ์ ๋ต
#include <stdio.h>
void printSequence(int arr[], int M) {
for (int i = 0; i < M; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
void generateSequence(int N, int M, int depth, int arr[]) {
if (depth == M) {
printSequence(arr, M);
return;
}
for (int i = 1; i <= N; i++) {
int isAlreadySelected = 0;
for (int j = 0; j < depth; j++) {
if (arr[j] == i) {
isAlreadySelected = 1;
break;
}
}
if (!isAlreadySelected) {
arr[depth] = i;
generateSequence(N, M, depth + 1, arr);
}
}
}
int main() {
int N, M;
scanf("%d %d", &N, &M);
int arr[8]; // M์ ์ต๋๊ฐ์ด 8์ด๋ฏ๋ก ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ 8๋ก ์ง์
generateSequence(N, M, 0, arr);
return 0;
}
์ด ์ฝ๋๋ ์ค๋ณต ์์ด 1๋ถํฐ N๊น์ง์ ์์ฐ์ ์ค M๊ฐ๋ฅผ ์ ํํ์ฌ ๊ฐ๋ฅํ ๋ชจ๋ ์์ด์ ์ถ๋ ฅํ๋ค
๊ฐ ์์ด์ ์ถ๋ ฅํ๋ ํจ์ printSequence์ ์์ด์ ์์ฑํ๋ ํจ์ generateSequence๋ก ๋๋์ด ์์ฑ๋์๋ค
[3] ๋๋ ์
์ด๋ ค์ ์ง๋ง, ์๋ก์ด ์๊ณ ๋ฆฌ์ฆ์ ์ ์ ์์ด์ ์ข์๋ค.
๋ ๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑํ๊ธฐ ์ํด ๋ ๊ฐ์ ํจ์๋ก ๋๋์ด ์์ฑํ๊ณ ํ์ฉํ ์ ์์๋ ๊ฒฝํ์ด์๋ค.
'SWLUG > ๋ฐฑ์ค BEAKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C] ๋ฐฑ์ค/BAEKJOON 2839๋ฒ: ์คํ ๋ฐฐ๋ฌ (1) | 2023.11.21 |
---|---|
[C] ๋ฐฑ์ค/BAEKJOON 2566๋ฒ: ์ต๋๊ฐ (0) | 2023.11.15 |
[C] ๋ฐฑ์ค BAEKJOON 18258๋ฒ: ํ 2 (0) | 2023.11.07 |
[C] ๋ฐฑ์ค BAEKJOON 10813๋ฒ: ๊ณต ๋ฐ๊พธ๊ธฐ (0) | 2023.11.07 |
[C] ๋ฐฑ์ค BAEKJOON 2798๋ฒ: ๋ธ๋์ญ (1) | 2023.10.06 |