본문 바로가기
알고리즘/BAEKJOON

BOJ 15651 : N과 M (3) - 중복 순열 permutations with repetition

by 피로물든딸기 2021. 2. 21.
반응형

A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기)

 

알고리즘 문제 전체 링크

 

www.acmicpc.net/problem/15651

 

 

중복으로 숫자를 선택 가능하고, 순서도 의미가 있는 중복 순열 문제이다.

즉, visit배열로 숫자를 현재 선택했는지 관리할 필요가 없다.

 

따라서 다음 Level에서도 모든 숫자를 선택할 수 있도록 i = 1 ~ N으로 하면 된다.

#include <stdio.h>

int N, M;

int list[10];

void outputList()
{
	for (int i = 0; i < M;i++) printf("%d ", list[i]);
	putchar('\n');
}

void DFS(int L)
{
	if (L == M)
	{
		outputList();
		return;
	}

	for (int i = 1; i <= N;i++)
	{
		list[L] = i;

		DFS(L + 1);
	}
}

int main(void)
{
	scanf("%d %d", &N, &M);

	DFS(0);

	return 0;
}

 

반응형

댓글