Algorithms/C++

Algolab 1-2: 주어진 정수의 최대, 최소 구하기 (C++)

Jenn28 2023. 4. 2. 18:28

이 문제 하나에 순수 7시간을 투자한게 억울해서라도... 티스토리에 업로드 해야만 했다..

다시는 이런 문제를 마주쳤을 때 오래걸리지 않길 바라면서..

 

일단 비교해서 풀어야하는 문제는 맞았다.

하지만 오래 걸리게 된 이유로는, 초반에 문제 접근이 잘못됐다.

배열의 개념을 완벽하게 이해하지 못했는데 배열로 풀려고 하니 꼬이기 시작했고, 점점 어렵게 됐다.

 


 

여러 개의 정수들이 주어졌을 때, 이 정수들 중에서 가장 큰 정수(최대값)와 가장 작은 정수(최소값) 를 계산하는 프로그램을 작성하시오.

 

 

< 배열 사용 x >

#include <iostream>
using namespace std;

int main() {
    int t;
    cin >> t;
    int min;
    int max;
    for (int i=1; i<=t; i++) {
        int n;
        cin >> n;
        for (int j=0; j<n; j++) {
            int num;
            cin >> num;
            if (j==0){
                max=num;
                min=num;
            }
            if (max <= num) {
                max = num;
            }
            if (min >= num) {
                min = num;
            }
        }
        cout << max << " " << min <<endl;
    }
    return 0;
}

 

< 배열 사용 > 더보기 클릭 !

더보기
#include <iostream>
using namespace std;

int main() {
    
    int t;
    cin >> t;
    
    for (int i=1; i<=t; i++) {
        int n;
        cin >> n;
        
        int arr[n];

        for (int j=0; j<=(n-1); j++) {
            cin >> arr[j];
        }

        int max=arr[0];
        int min=arr[0];

        for (int k=0; k<(n-1); k++) {
            if (n==1) {
                min = arr[k];
                max = arr[k];
            }
            else if (max < arr[k+1]) {
                max = arr[k+1];
            }
            else if (min > arr[k+1]) {
                min = arr[k+1];
            
            }
            else {
                continue;
            }
        }
        cout << min << " " << max << endl;
    }
    return 0;
}