https://leetcode.com/problems/array-partition-i/
난이도 : easy
N개의 페어를 이용한 min(a, b)의 합으로 만들 수 있는 가장 큰 수를 출력하라.
문제를 처음에 이해를 못했다 두정수를 선택해서 가장작은 값을 모두 더해서 가장 큰 값을 찾아라 인대.. 배열을 순서대로 선택을 하는 것인지 아니면 작은 값만 찾아서 하는 것인지 처음에 매우 해깔렸다.
이 문제는 정렬을 하고 짝 번째 값만 더해주는 식으로 해결하였다. 정렬된 상태에서는 짝수 번째에 항상 작은 값이 위치하기 때문이다.
class Solution {
public:
int arrayPairSum(vector<int>& nums) {
int sum = 0;
sort(nums.begin(), nums.end());
// 짝수 번째만 합산한다
for (int i = 0; i < nums.size(); i += 2) {
sum += nums[i];
}
return sum;
}
};
1995. Count Special Quadruplets (0) | 2021.09.05 |
---|---|
819. Most Common Word (0) | 2021.09.04 |
167. Two Sum II - Input array is sorted (0) | 2021.09.04 |
242. Valid Anagram (0) | 2021.09.04 |
234. Palindrome Linked List (0) | 2021.09.04 |
댓글 영역