Algorithm
순열(Permutation)-c#
Doromi
2023. 12. 17. 17:29
728x90
반응형
순열(Permutation)은 주어진 집합의 원소들을 나열하는 모든 경우의 수를 말합니다
using System;
class Program
{
static void Main()
{
string[] set = { "A", "B", "C" };
Permute(set, 0, set.Length - 1);
}
static void Permute(string[] set, int start, int end)
{
if (start == end)
{
PrintArray(set);
return;
}
for (int i = start; i <= end; i++)
{
Swap(ref set[start], ref set[i]);
Permute(set, start + 1, end);
Swap(ref set[start], ref set[i]); // 원복
}
}
static void Swap(ref string a, ref string b)
{
string temp = a;
a = b;
b = temp;
}
static void PrintArray(string[] arr)
{
Console.WriteLine(string.Join(", ", arr));
}
}
재귀 함수가 호출되면 스택에 저장하게 되고, LIFO(후입 선출) 구졸 마지막에 호출된 함수를 완료하고 그 값을 아래로 전달하여 최초로 호출된 함수에서 값을 계산한다.
728x90
반응형