본문 바로가기
backjoon/DFS && BFS

백준 15651 - N과M(3) c언어

by 정구지개발자 2023. 1. 17.
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

댓글