# 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를 구하고 순서대로 출력했다.
[채점 결과]
'알고리즘' 카테고리의 다른 글
[BOJ] 2490: 윷놀이 (1) | 2022.09.21 |
---|---|
[BOJ] 10871: X보다 작은 수 (0) | 2022.09.21 |
[HackerRank] Sherlock and Array (0) | 2021.11.21 |
[HackerRank] Plus Minus (0) | 2021.11.05 |
[HackerRank] Closest Numbers (0) | 2021.11.05 |