Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 배열에서 최댓값과 최솟값을 찾는 방법 – 단계별 예제 코드

C#에서 배열의 최댓값(maximum)최솟값(minimum)을 구하는 것은 프로그래밍 기초 중에서도 가장 자주 사용되는 알고리즘입니다. 핵심 원리는 간단합니다. 먼저 배열의 첫 번째 요소를 최댓값과 최솟값의 초기값으로 설정한 뒤, 나머지 모든 요소를 하나씩 비교하며 값을 갱신하는 방식입니다.

1. 기본 원리 이해하기

배열의 첫 번째 요소를 초기 기준값으로 지정하면, 반복문을 통해 나머지 요소들과 순차적으로 비교할 수 있습니다.

최댓값 찾기

현재 요소가 저장된 최댓값보다 크다면, 해당 요소로 최댓값을 교체합니다.

if(arr[i] > max) {
    max = arr[i];
}

최솟값 찾기

반대로 현재 요소가 저장된 최솟값보다 작다면, 해당 요소로 최솟값을 교체합니다.

if(arr[i] < min) {
    min = arr[i];
}

2. 전체 예제 코드

아래 예제는 정수형 배열에서 최댓값과 최솟값의 위치를 찾아 출력하는 전체 C# 프로그램입니다. 직접 실행해 보면서 동작 방식을 확인해 보세요.

예제

using System;
public class Demo {
    public static void Main() {
        int[] arr = new int[5] {99, 95, 93, 89, 87};
        int i, max, min, n;
        // 배열의 크기
        n = 5;
        // 첫 번째 요소를 초기값으로 설정
        max = arr[0];
        min = arr[0];
        // 두 번째 요소부터 끝까지 반복하며 비교
        for(i=1; i<n; i++) {
            if(arr[i] > max) {
                max = arr[i];
            }
            if(arr[i] < min) {
                min = arr[i];
            }
        }
        Console.Write("Maximum element = {0}\n", max);
        Console.Write("Minimum element = {0}\n\n", min);
    }
}

실행 결과

Maximum element = 99
Minimum element = 87

3. 코드 동작 방식 설명

위 프로그램의 흐름을 단계별로 살펴보면 다음과 같습니다.

1단계: 크기가 5인 정수 배열 arr을 선언하고 값(99, 95, 93, 89, 87)으로 초기화합니다.
2단계: 변수 maxmin에 배열의 첫 번째 요소인 99를 대입합니다.
3단계: 인덱스 1부터 시작하는 for 반복문으로 나머지 요소들을 검사합니다.
4단계: 각 요소가 현재 max보다 크면 max를, min보다 작으면 min을 갱신합니다.
5단계: 반복이 끝나면 Console.Write()를 통해 최종 결과를 콘솔에 출력합니다.

4. 참고: LINQ를 활용한 더 간결한 방법

C#에서는 LINQ를 사용하면 한 줄로도 최댓값과 최솟값을 구할 수 있습니다.

using System;
using System.Linq;

public class Demo {
    public static void Main() {
        int[] arr = {99, 95, 93, 89, 87};
        Console.WriteLine("Maximum element = " + arr.Max());
        Console.WriteLine("Minimum element = " + arr.Min());
    }
}

직접 알고리즘을 구현하는 방식은 로직 이해와 학습에 유리하고, LINQ 방식은 실무에서 코드를 간결하게 유지하는 데 효과적입니다. 상황에 맞게 두 방법을 활용해 보세요.