퀴즈 질문 |
|
|
예상답변/설명 |
먼저 문자열의 첫문자를 기준으로 1~N개의 문자들을 이용 가능한 모든 조합을 구하고,
계속해서 첫문자를 제외하고 다음 문자를 기준으로 2~N 문자들을 이용 가능한 모든 조합을 구한다. 이러한 방식으로 계속 Recursive를 이용하여 조합을 구하면 전체 문자 조합을 구할 수 있다.
public void RunTest()
{
StringBuilder sb = new StringBuilder();
StringCombination("ABC", sb, 0);
}
void StringCombination(string s, StringBuilder sb, int index)
{
for (int i = index; i < s.Length; i++)
{
// 1) 한 문자 추가
sb.Append(s[i]);
// 2) 구한 문자조합 출력
Console.WriteLine(sb.ToString());
// 3) 나머지 문자들에 대한 조합 구하기
StringCombination(s, sb, i + 1);
// 위의 1에서 추가한 문자 삭제
sb.Remove(sb.Length - 1, 1);
}
}
|