알고리즘

[HackerRank] Mini-Max Sum

haesa_s 2021. 11. 21. 16:36

# Mini-Max Sum (Warmup)

[문제]

 

 

[코드]

void miniMaxSum(vector<int> arr) {
    long sum = 0;
    for(int i = 0; i < arr.size(); i++)
        sum += arr[i];
    
    long max = 0;
    long min = sum;
    for(int i = 0; i < arr.size(); i++)
    {
        max = max > sum-arr[i] ? max : sum-arr[i];
        min = min < sum-arr[i] ? min : sum-arr[i]; 
    }
    cout << min << " " << max << endl;
}

 

 

[코드설명]

원소가 5개인 배열에서 4개의 합이 가장 작은 것과 가장 큰 것을 출력하는 문제다.

원소 5개의 sum을 구하고, 원소를 하나씩 뺀 값을 비교해가며 min과 max를 구했다.

 

min같은 경우 처음에 0으로 초기화했다가 값이 제대로 구해지지 않아 sum으로 초기화해주었다.

(원소 4개의 합으로 나올 수 있는 수보다 더 큰 수로 초기화)

반면 max는 0으로 초기화해주었다.

 

조건연산자를 사용해서 min과 max를 구하고 순서대로 출력했다.

 

 

[채점 결과]