더북(TheBook)

이러한 순위 알고리즘을 LINQ와 람다 식으로 표현하면 다음과 같습니다. 단순히 순위 배열만 구하는 것과 점수와 순위를 묶어 반환하는 내용을 표현했습니다.

> int[] scores = { 90, 87, 100, 95, 80 };
> var rankings = scores.Select(s => scores.Where(ss => ss > s).Count() + 1).ToArray();
> rankings
int[5] { 3, 4, 1, 2, 5 }
> var rankings = scores.Select(s =>
.     new { Score = s, Rank = scores.Where(ss => ss > s).Count() + 1 });
> foreach (var r in rankings)
. {
.     Console.WriteLine($"{r.Score,3} - {r.Rank}");
. }
90 - 3
87 - 4
100 - 1
95 - 2
80 - 5
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.