C# / .NET 알고리즘과 퀴즈
본 알고리즘 퀴즈 문제는 C#/.NET 개발자를 위한 알고리즘 인터뷰 혹은 C# 프로그래밍을 통한
문제 해결 알고리즘을 연구해 보는데 도움이 되고자 작성되었습니다.
문제 해결 알고리즘을 연구해 보는데 도움이 되고자 작성되었습니다.
퀴즈 질문 | |
예상답변/설명 | 입력 리스트가 이미 소트되어 있다는 것을 전제로 하고, 다음과 같이 병합 재정렬할 수 있다.
public List<int> MergeList(List<int> list1,
List<int> list2)
{
List<int> result = new List<int>();
var enum1 = list1.GetEnumerator();
var enum2 = list2.GetEnumerator();
bool exists1 = enum1.MoveNext();
bool exists2 = enum2.MoveNext();
while (exists1 || exists2)
{
if (exists1 && exists2)
{
if (enum1.Current < enum2.Current)
{
result.Add(enum1.Current);
exists1 = enum1.MoveNext();
}
else
{
result.Add(enum2.Current);
exists2 = enum2.MoveNext();
}
}
else if (exists1)
{
for (; exists1; exists1 = enum1.MoveNext())
{
result.Add(enum1.Current);
}
}
else
{
for (; exists2; exists2 = enum1.MoveNext())
{
result.Add(enum1.Current);
}
}
}
return result;
}
|