문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
2n개의 정수로 이루어진 배열 nums가 주어졌을 때, 이 정수들을 (a[1], b[1]), (a[2], b[2]), ..., (a[n], b[n])와 같은 n개의 쌍으로 묶어 모든 i에 대해 min(a[i], b[i])의 합이 최대가 되도록 한다. 최대화된 합을 반환해라.
#1
Input: nums = [1, 4, 3, 2]
Output: 4
Explanation: 가능한 모든 조합(순서 무시)은 다음과 같다.
1. (1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3
2. (1, 3), (2, 4) -> min(1, 3) + min(2, 4) = 1 + 2 = 3
3. (1, 2), (3, 4) -> min(1, 2) + min(3, 4) = 1 + 3 = 4
따라서 가능한 최대 합은 4이다.
#2
Input: nums = [6, 2, 6, 5, 1, 2]
Output: 9
Explanation: 최적의 쌍은 (2, 1), (2, 5), (6, 6)이다. min(2, 1) + min(2, 5) + min(6, 6) = 1 + 2+ 6 = 9이다.
class Solution {
public int arrayPairSum(int[] nums) {
Arrays.sort(nums);
int result = 0;
for(int i = 0; i < nums.length; i += 2){
result += nums[i];
}
return result;
}
}