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

C++로 4개의 정수 중 최댓값 찾기: 직접 만드는 max() 함수 활용법

정수 a, b, c, d 네 개가 주어졌을 때, 이들 중에서 가장 큰 값을 직접 작성한 함수를 이용해 찾아야 한다고 가정해 보겠습니다. 이를 위해 두 개의 숫자를 입력받아 더 큰 값을 반환하는 max() 함수를 하나 만들고, 이 함수를 조합하여 네 수 전체의 최댓값을 구하는 방식으로 문제를 해결할 수 있습니다.

예를 들어 입력이 a = 75, b = 18, c = 25, d = 98이라면, 출력 결과는 98이 됩니다.

문제 해결 접근 방법

이 문제는 다음 단계에 따라 해결할 수 있습니다.

  • 두 개의 값 x와 y를 매개변수로 받는 max() 함수를 정의합니다.
  • x와 y 중 더 큰 값을 반환합니다.
  • 네 개의 숫자 a, b, c, d를 준비합니다.
  • left_max := max(a, b) — 앞의 두 수 중 큰 값을 구합니다.
  • right_max := max(c, d) — 뒤의 두 수 중 큰 값을 구합니다.
  • final_max = max(left_max, right_max) — 두 결과를 비교하여 최종 최댓값을 구합니다.
  • final_max를 반환합니다.

이처럼 두 수씩 짝지어 비교하면 네 수의 최댓값도 간단하게 구할 수 있습니다. 이 방식은 비교 횟수가 고정되어 있어 로직이 명확하고 확장성도 좋다는 장점이 있습니다.

예제 코드

다음 구현 예시를 통해 더 자세히 이해해 보겠습니다.

#include <iostream>
using namespace std;
int max(int x, int y){
    if(x > y){
        return x;
    }else{
        return y;
    }
}
int main(){
    int a = 75, b = 18, c = 25, d = 98;
    int left_max = max(a, b);
    int right_max = max(c, d);
    int final_max = max(left_max, right_max);
    cout << final_max;
}

입력

75, 18, 25, 98

출력

98

코드 설명

max() 함수는 if-else 조건문을 사용해 두 인자 중 더 큰 값을 판별하여 반환합니다. main() 함수에서는 먼저 (a, b)와 (c, d)를 각각 비교한 뒤, 그 결과인 left_maxright_max를 다시 한 번 비교하여 최종 최댓값을 얻습니다. 참고로 C++ 표준 라이브러리에는 이미 std::max()가 포함되어 있으므로, 실무에서는 별도의 함수를 정의하지 않고 이를 활용하는 것이 일반적입니다.