C#에서 SortedSet에 저장된 최소값을 확인하려면 Min 속성을 사용하면 됩니다. SortedSet은 요소가 항상 정렬된 상태로 자동 유지되기 때문에, 별도의 정렬 작업 없이 Min과 Max 속성만으로 가장 작은 값과 가장 큰 값을 즉시 얻을 수 있습니다.
아래에서 문자열과 정수를 다루는 두 가지 예제를 통해 사용 방법을 살펴보겠습니다.
예제 1 – 문자열 SortedSet에서 최소값·최대값 구하기
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
SortedSet<string> set1 = new SortedSet<string>();
set1.Add("AB");
set1.Add("BC");
set1.Add("CD");
set1.Add("EF");
Console.WriteLine("Elements in SortedSet1...");
foreach (string res in set1) {
Console.WriteLine(res);
}
Console.WriteLine("Maximum element in SortedSet1 = " + set1.Max);
Console.WriteLine("Minimum element in SortedSet1 = " + set1.Min);
SortedSet<string> set2 = new SortedSet<string>();
set2.Add("BC");
set2.Add("CD");
set2.Add("DE");
set2.Add("EF");
set2.Add("AB");
set2.Add("HI");
set2.Add("JK");
Console.WriteLine("Elements in SortedSet2 (Enumerator for SortedSet)...");
SortedSet<string>.Enumerator demoEnum = set2.GetEnumerator();
while (demoEnum.MoveNext()) {
string res = demoEnum.Current;
Console.WriteLine(res);
}
Console.WriteLine("Maximum element in SortedSet2 = " + set2.Max);
Console.WriteLine("Minimum element in SortedSet2 = " + set2.Min);
}
}실행 결과
Elements in SortedSet1... AB BC CD EF Maximum element in SortedSet1 = EF Minimum element in SortedSet1 = AB Elements in SortedSet2 (Enumerator for SortedSet)... AB BC CD DE EF HI JK Maximum element in SortedSet2 = JK Minimum element in SortedSet2 = AB
위 예제에서 볼 수 있듯이, 문자열 집합의 경우 사전순(알파벳 순)으로 정렬되므로 최소값은 "AB", 최대값은 마지막 알파벳 순서의 문자열이 됩니다. 또한 GetEnumerator() 메서드를 사용하면 열거자(Enumerator)를 통해 정렬된 순서대로 요소를 하나씩 순회할 수 있습니다.
예제 2 – 정수 SortedSet에서 최소값·최대값 구하기
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
SortedSet<int> set1 = new SortedSet<int>();
set1.Add(5);
set1.Add(50);
set1.Add(20);
set1.Add(10);
set1.Add(70);
set1.Add(60);
set1.Add(55);
set1.Add(95);
Console.WriteLine("Elements in SortedSet...");
foreach (int res in set1) {
Console.WriteLine(res);
}
Console.WriteLine("Maximum element in SortedSet = " + set1.Max);
Console.WriteLine("Minimum element in SortedSet = " + set1.Min);
}
}실행 결과
Elements in SortedSet... 5 10 20 50 55 60 70 95 Maximum element in SortedSet = 95 Minimum element in SortedSet = 5
요소를 추가한 순서와 관계없이 출력 시 항상 오름차순으로 정렬되어 있으며, Min은 5, Max는 95를 반환하는 것을 확인할 수 있습니다.
핵심 정리
- Min 속성: SortedSet에 저장된 값 중 가장 작은 값을 반환합니다.
- Max 속성: SortedSet에 저장된 값 중 가장 큰 값을 반환합니다.
- SortedSet은 내부적으로 레드-블랙 트리 같은 자가 균형 이진 검색 트리 구조를 사용해 정렬 상태를 유지하므로, Min/Max 조회가 매우 효율적입니다.
- 문자열은 사전순, 숫자는 크기순으로 최소·최대가 결정됩니다.
- 주의할 점은 빈 SortedSet에서 Min이나 Max에 접근하면 InvalidOperationException이 발생하므로, 사용 전에
Count속성으로 요소 존재 여부를 확인하는 것이 안전합니다.