본문 바로가기
Program Language/C#

Part2. C# 기초 다지기(4. 배열의 정렬)

by 토담이아빠 2023. 2. 12.

배열의 정렬

 

이번 포스팅에서는 배열의 요소들을 오름차순과 내림차순으로 정렬하고 사용하는 방법에 대해서 정리했습니다.


오름차순 정렬

 

배열을 정렬할 때 Array 클래스의 Sort() 메서드를 사용합니다. 이 메서드는 기본적으로 오름차순 정렬을 수행합니다. 다음은 한국어, 영어 알파벳을 오름차순으로 정렬하는 예제입니다.


using System;
using System.Data;

namespace MultiArray_exam
{
    internal class Program
    {     
        static void Main(string[] args)
        {
            Console.WriteLine("======한국어 알파벳====");
            string[] alphabat_KO = { "가", "라", "마", "나", "다", "바" };
            PrintArray("정렬 전", alphabat_KO);
            Array.Sort(alphabat_KO);
            PrintArray("정렬 후", alphabat_KO);
            Console.WriteLine();

            string[] alphabat_EN = { "A", "F", "E", "D", "B", "C" };
            Console.WriteLine("======영어 알파벳====");
            PrintArray("정렬 전", alphabat_EN);
            Array.Sort(alphabat_EN);
            PrintArray("정렬 후", alphabat_EN);
           
        }
        private static void PrintArray(string s, string[] strArray)
        {
            Console.WriteLine(s);
            foreach(var str in strArray)
            {
                Console.Write($"{str}, ");
            }
            Console.WriteLine();
        }
 
    }
}

결과

======한국어 알파벳====
정렬 전
가, 라, 마, 나, 다, 바,
정렬 후
가, 나, 다, 라, 마, 바,

======영어 알파벳====
정렬 전
A, F, E, D, B, C,
정렬 후
A, B, C, D, E, F,

내림차순 정렬

 

Array 클래스에는 내림차순을 지원하는 별도의 메서드가 없습니다 (LINQ를 사용하면 바로 지원되는 메서드가 있지만 여기서는 다루지 않겠습니다). 하지만 순서를 뒤집어 주는 Reverse() 메서드를 이용하면 내림차순을 구현할 수 있습니다. 

 

Sort() 메서드를 이용하여 오름차순으로 정렬한 뒤에 Reverse() 메서드를 사용하여 순서를 뒤집어주면 내림차순 정렬이 됩니다. 아래는 이 방법을 사용하여 내림차순을 구현하는 예제입니다.


using System;
using System.Data;

namespace MultiArray_exam
{
    internal class Program
    {     
        static void Main(string[] args)
        {
            Console.WriteLine("======한국어 알파벳====");
            string[] alphabat_KO = { "가", "라", "마", "나", "다", "바" };
            Array.Sort(alphabat_KO);
            Array.Reverse(alphabat_KO);
            PrintArray("내림차순 정렬", alphabat_KO);
            Console.WriteLine();

            string[] alphabat_EN = { "A", "F", "E", "D", "B", "C" };
            Console.WriteLine("======영어 알파벳====");
            Array.Sort(alphabat_EN);
            Array.Reverse(alphabat_EN);
            PrintArray("내림차순 정렬", alphabat_EN);
           
        }
        private static void PrintArray(string s, string[] strArray)
        {
            Console.WriteLine(s);
            foreach(var str in strArray)
            {
                Console.Write($"{str}, ");
            }
            Console.WriteLine();
        }
 
    }
}

결과

======한국어 알파벳====
내림차순 정렬
바, 마, 라, 다, 나, 가,

======영어 알파벳====
내림차순 정렬
F, E, D, C, B, A,

[Review]
"초보자를 위한 C# 200제(2판)" / 저자  강병익

댓글