C#/C#200제
[C#] 15일차 - 105. 배열을 내림차순으로 정렬하는 방법
반나무
2021. 2. 13. 19:21
1. 오름차순으로 정렬 후 내용을 뒤집으면 된다.
int[] arr = {12, 32, 43, 24, 8};
Array.Sort(arr); // 오름차순으로 정렬
Array.Reverse(arr); // 배열의 내용을 뒤집어줌
2. Sort() 메소드의 IComparer 인터페이스를 구현해준다.
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A105_IComparer
{
public class ReverseComparer : IComparer
{
public int Compare(object x, object y)
{
string s1 = (string)x;
string s2 = (string)y;
return string.Compare(s2, s1);
}
}
class Program
{
static void Main(string[] args)
{
string[] animalsEn = { "dog", "cow", "rabbit", "goat", "sheep", "mouse", "horse", "deer" };
string[] animalsKo = { "개", "소", "토끼", "염소", "양", "쥐", "말", "사슴" };
Display("초기 배열", animalsEn);
Array.Sort(animalsEn);
Array.Reverse(animalsEn);
Display("Sort후 reverse", animalsEn);
Display("초기 배열", animalsKo);
Array.Sort(animalsKo, 2, 3);
Display("[2]에서 3개 정렬 후", animalsKo);
IComparer revComparer = new ReverseComparer();
Array.Sort(animalsKo, revComparer); // revComparer를 사용해 내림차순 정렬함
Display("내림차순 정렬", animalsKo);
}
private static void Display(string comment, string[] arr)
{
Console.WriteLine(comment);
for(int i = arr.GetLowerBound(0); i <= arr.GetUpperBound(0); i++)
{
Console.Write(" {0}", arr[i]);
}
Console.WriteLine();
Console.WriteLine();
}
}
}
반응형