본문 바로가기
개발/게임) 개발관련

기본기) List<CustomClass>에서 특정 value 값의 최대치와 최소치를 찾는 방법 비교

by 테샤르 2024. 7. 9.

 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를 사용하는 것이 더 좋은 선택이라고 한다.

 

★☆☆☆☆

 

반응형

댓글