C# SortedSet에서 최댓값(Max) 구하는 방법
C#의 SortedSet<T>는 요소가 추가되는 즉시 자동으로 정렬 상태를 유지해 주는 컬렉션입니다. 이 컬렉션에서 최댓값을 구하려면 Max 속성을 사용하면 되며, 반대로 최솟값이 필요할 때는 Min 속성으로 간단히 얻을 수 있습니다.
아래 예제들을 통해 실제 사용 방법을 살펴보겠습니다.
예제 1: 문자열 SortedSet에서 최댓값 구하기
다음 예제에서는 두 개의 문자열 SortedSet을 생성한 뒤 Max 속성으로 최댓값을 출력합니다. 두 번째 집합에서는 열거자(Enumerator)를 사용해 요소를 하나씩 순회하는 방법도 함께 확인할 수 있습니다.
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);
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);
}
}
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Elements in SortedSet1...
AB
BC
CD
EF
Maximum element in SortedSet1 = EF
Elements in SortedSet2 (Enumerator for SortedSet)...
AB
BC
CD
DE
EF
HI
JK
Maximum element in SortedSet2 = JK
문자열 집합의 경우 기본 비교자(Comparer)에 따라 사전순으로 가장 큰 값이 최댓값으로 반환됩니다. 요소를 추가한 순서와 관계없이 SortedSet은 항상 정렬된 상태를 유지한다는 점을 확인할 수 있습니다.
예제 2: 정수 SortedSet에서 최댓값과 최솟값 구하기
정수형 SortedSet에서도 동일한 방식으로 Max와 Min 속성을 사용할 수 있습니다. 아래 예제는 한 번의 코드로 최댓값과 최솟값을 모두 출력합니다.
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
핵심 정리
- Max 속성: SortedSet에 저장된 값 중 가장 큰 값을 반환합니다.
- Min 속성: SortedSet에 저장된 값 중 가장 작은 값을 반환합니다.
- SortedSet은 요소 추가 순서와 관계없이 항상 오름차순으로 정렬된 상태를 유지합니다.
- 중복된 요소는 자동으로 제거되며, 각 값은 고유하게 저장됩니다.