C#에서 배열에 담긴 정수들을 짝수와 홀수로 구분하여 각각 별도의 배열에 저장하는 방법을 알아보겠습니다. 핵심은 나머지 연산자(%)를 활용하는 것입니다.
기본 원리
먼저 결과를 저장할 두 개의 배열을 준비합니다. 하나는 짝수용, 다른 하나는 홀수용입니다.
int[] arr2 = new int[5]; // 짝수 저장용 배열 int[] arr3 = new int[5]; // 홀수 저장용 배열
배열의 요소를 2로 나누었을 때 나머지가 0이면 그 수는 짝수입니다. 이 조건을 만족하는 요소를 별도의 배열에 추가하면 됩니다. 아래 코드처럼 반복문을 통해 배열 전체를 순회하며 검사합니다.
if (arr1[i] % 2 == 0) {
arr2[j] = arr1[i]; // 짝수를 arr2에 저장
}else 조건에 해당하는 경우는 홀수입니다. 홀수는 또 다른 배열에 따로 저장한 뒤, 마지막에 각각 출력하면 됩니다.
전체 예제 코드
아래는 위 원리를 적용한 완전한 C# 프로그램 예제입니다.
using System;
namespace Demo {
public class Program {
public static void Main(string[] args) {
int[] arr1 = new int[] {
77,
34,
59,
42,
99
};
int[] arr2 = new int[5];
int[] arr3 = new int[5];
int i, j = 0, k = 0;
for (i = 0; i < 5; i++) {
if (arr1[i] % 2 == 0) {
arr2[j] = arr1[i];
j++;
} else {
arr3[k] = arr1[i];
k++;
}
}
Console.WriteLine("Even numbers...");
for (i = 0; i < j; i++) {
Console.WriteLine(arr2[i]);
}
Console.WriteLine("Odd numbers...");
for (i = 0; i < k; i++) {
Console.WriteLine(arr3[i]);
}
}
}
}실행 결과
Even numbers... 34 42 Odd numbers... 77 59 99
코드 설명
- 변수
j와k는 각각 짝수 배열과 홀수 배열에 요소가 저장된 개수를 추적합니다. - 반복문 안에서
arr1[i] % 2 == 0조건이 참이면 짝수이므로arr2에 저장하고j를 증가시킵니다. - 조건이 거짓이면 홀수이므로
arr3에 저장하고k를 증가시킵니다. - 분류가 끝나면
j와k값을 이용해 실제 저장된 요소만큼만 출력합니다.
이처럼 나머지 연산자 하나만으로도 배열 요소를 손쉽게 분류할 수 있습니다. LINQ의 Where() 메서드를 사용하면 더 간결하게 처리할 수도 있지만, 기본 문법만으로 구현할 때는 위와 같은 방식이 가장 직관적입니다.