List<CustomClass>에서 특정 value 값의 최대치와 최소치를 찾는 방법 비교
< 정렬을 사용한 방법 >
정렬을 사용하여 첫 번째 항목을 최대 또는 최소 값으로 가져오는 방법은 간단하지만,
성능 측면에서 비효율적일 수 있습니다.
예를 들어, 리스트를 정렬하면 시간 복잡도는 O(n log n)이 된다.
List<CustomClass> list = GetCustomClassList();
list.Sort((x, y) => x.Value.CompareTo(y.Value));
var minValue = list.First().Value;
list.Sort((x, y) => y.Value.CompareTo(x.Value));
var maxValue = list.First().Value;
반응형
< LINQ를 사용한 방법 >
LINQ를 사용하면 리스트를 정렬하지 않고도 최소값과 최대값을 빠르게 찾을 수 있다.
LINQ의 Min과 Max 메서드를 사용하면 리스트를 한 번만 순회하여 값을 찾을 수 있으므로 시간 복잡도는 O(n)가 된다..
List<CustomClass> list = GetCustomClassList();
var minValue = list.Min(x => x.Value);
var maxValue = list.Max(x => x.Value);
< 결론 >
리스트에서 특정 값의 최대치와 최소치를 찾을 때 LINQ를 사용하는 것이 좋다.
LINQ는 리스트를 정렬하지 않고도 최소값과 최대값을 효율적으로 찾을 수 있으며, 코드도 간결해진다.
상황에 맞게 정렬을 사용하는 방법은 리스트 크기가 작을 때는 문제가 되지 않을 수 있지만, 리스트 크기가 커질수록 비효율적이기 때문에. 따라서 일반적으로 LINQ를 사용하는 것이 더 좋은 선택이라고 한다.
★☆☆☆☆
반응형
'개발 > 게임) 개발관련' 카테고리의 다른 글
잡학지식)인하우스(In-house) 빌드 (0) | 2024.09.09 |
---|---|
개발지식) Stored Procedure (SP : 저장 프로시저) (0) | 2024.08.20 |
게임지식) 게임 플레이어의 난이도를 유지하는 방법 (2) | 2024.04.30 |
개발지식) 랜덤을 구현하는 방식 종류 (0) | 2024.04.12 |
문제해결) Visual Studio 2020 로그인 실패로 인한 캐시 삭제 (0) | 2024.03.05 |
댓글