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

C/C++의 INT_MAX와 INT_MIN 완벽 이해하기: 개념부터 실전 활용까지

INT_MAX와 INT_MIN이란 무엇인가?

C/C++ 프로그래밍에서 INT_MAXINT_MIN은 int 자료형이 표현할 수 있는 최댓값과 최솟값을 미리 정의해 둔 매크로입니다. 이 매크로들은 <climits>(C++의 경우) 또는 <limits.h>(C의 경우) 헤더 파일에 정의되어 있으며, 32비트 시스템 기준으로 다음과 같은 값을 가집니다.

  • INT_MAX: 2147483647 (2³¹ − 1)
  • INT_MIN: -2147483648 (−2³¹)

변수나 배열 요소의 초기화, 값의 범위 비교 등 다양한 상황에서 유용하게 활용할 수 있습니다.

기본 사용 예제

다음 코드는 두 매크로를 출력하여 실제 값을 확인하는 간단한 예제입니다.

#include<bits/stdc++.h>
int main(){
    printf("%d\n", INT_MAX);
    printf("%d", INT_MIN);
    return 0;
}

실행 결과

2147483647
-2147483648

실전 응용: 배열에서 최솟값 구하기

INT_MAX와 INT_MIN은 알고리즘 문제 해결에서 특히 유용합니다. 대표적인 활용 사례로, 배열의 최솟값을 구하는 함수를 들 수 있습니다.

배열의 최솟값을 찾을 때는 결과를 저장할 변수를 INT_MAX로 초기화합니다. 그런 다음 배열의 모든 요소를 순회하면서 현재 저장된 값보다 작은 요소가 있으면 값을 갱신하면 됩니다. 이렇게 하면 어떤 범위의 숫자가 입력되더라도 항상 올바른 최솟값을 구할 수 있습니다.

예제 코드

#include <bits/stdc++.h>
// 배열에서 최소 요소를 계산하는 함수
int compute_min(int arr[], int n){
    int MIN = INT_MAX;
    for (int i = 0; i < n; i++)
        MIN = std::min(MIN, arr[i]);
    std::cout << MIN;
}
int main(){
    int arr[] = { 2019403813, 2147389580, 2145837140, 2108938594, 2112076334 };
    int n = sizeof(arr) / sizeof(arr[0]);
    compute_min(arr, n);
    return 0;
}

실행 결과

2019403813

정리

INT_MAX와 INT_MIN은 단순히 상수 값 이상의 의미를 지닙니다. 최댓값 탐색 시에는 변수를 INT_MIN으로, 최솟값 탐색 시에는 INT_MAX로 초기화하는 패턴은 코딩 테스트와 실무 개발에서 널리 쓰이는 필수적인 기법이므로 반드시 익혀두는 것이 좋습니다.