Approach

  • 배열에 존재하는 값들중에서 쌍을 이뤄 그중 작은 요소의 값들끼리 합한 것들중에서 가장 큰 값을 찾는 것이다.
  • 작은 건 작은 것들끼리, 큰 건 큰 것들끼리 쌍을 이뤄준다. 그러기 위해서 sort함수를 통해 정렬해주었다.
  • sum 변수를 0으로 초기화 시켜 for문을 돌려서 nums에 있는 요소 두 개씩 가져와 MinNum 함수를 통해 요소 중 작은 값을 return하여 sum에 더하도록 구현하였다.

Code

class Solution {
public:
    int MinNum(int a, int b)
    {
        if(a>b) return b;
        return a;
    }

    int arrayPairSum(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        int sum = 0;

        for(int i = 0; i < nums.size(); i+=2)
        {
            sum += MinNum(nums[i], nums[i+1]);
        }

        return sum;
    }
};

Result


추가적인 해결방법

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;
    }
};

profile
누누의 잡다저장소

0개의 댓글