728x90
https://www.acmicpc.net/problem/15651
15651번: N과 M (3)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
1. 이전문제에서는 flag를 사용해서 중복 체크를 했지만 이번문제에서는 그럴 필요가 없다.
2. flag 를 지우고 result[count] = i 로 바로바로 배열에 넣고 재귀를 돌리는 전략을 사용했다.
나의답안)
#include <stdio.h>
void DFS3(int *result, int count, int N, int M)
{
int i;
if (count == M)
{
i = 0;
while (i < M)
{
printf("%d ", result[i]);
i++;
}
printf("\n");
}
else
{
i = 1;
while (i <= N)
{
result[count] = i;
DFS3(result, count + 1, N, M);
i++;
}
}
}
int main()
{
int N, M;
scanf("%d %d", &N, &M);
int result[1000] = {0};
DFS3(result, 0, N, M);
return (0);
}
728x90
'backjoon > DFS && BFS' 카테고리의 다른 글
백준 1697 java (0) | 2024.02.05 |
---|---|
백준 15650 - N과M(2) c언어 (0) | 2023.01.14 |
백준 15649번 -N과M(1) c언어 (0) | 2023.01.11 |
댓글