C#에서는 List<int>를 활용하면 두 개의 정렬된 배열을 손쉽게 하나의 리스트로 병합할 수 있습니다. 이 글에서는 배열 선언부터 병합, 그리고 ToArray() 메서드를 사용한 배열 변환까지 단계별로 살펴보겠습니다.
1. 두 개의 정렬된 배열 준비하기
먼저 병합할 두 개의 정렬된 배열을 선언합니다.
int[] array1 = { 56, 70, 77 };
int[] array2 = { 80, 99, 180 };
2. 리스트에 요소를 추가하며 병합하기
List<int> 객체를 생성한 뒤, 반복문을 사용해 두 배열의 요소를 순서대로 추가하여 병합합니다.
var list = new List<int>();
for (int i = 0; i < array1.Length; i++) {
list.Add(array1[i]);
list.Add(array2[i]);
}
3. ToArray() 메서드로 배열 변환하기
병합이 완료되면 ToArray() 메서드를 사용하여 리스트를 다시 배열 형태로 변환할 수 있습니다.
전체 예제 코드
지금까지의 과정을 하나의 프로그램으로 정리하면 다음과 같습니다.
using System;
using System.Collections.Generic;
public class Program {
public static void Main() {
int[] array1 = { 56, 70, 77 };
int[] array2 = { 80, 99, 180 };
var list = new List<int>();
for (int i = 0; i < array1.Length; i++) {
list.Add(array1[i]);
list.Add(array2[i]);
}
int[] array3 = list.ToArray();
foreach(int res in array3) {
Console.WriteLine(res);
}
}
}
실행 결과
56 80 70 99 77 180
참고: 완전히 정렬된 결과가 필요한 경우
위 방식은 두 배열의 요소를 번갈아 가며 병합하기 때문에 결과가 전체적으로 정렬되어 있지 않습니다. 만약 병합 후 전체가 오름차순으로 정렬된 배열이 필요하다면, list.Sort()를 호출한 뒤 ToArray()로 변환하거나, LINQ의 Concat()과 OrderBy()를 함께 활용하면 됩니다.