[LeetCode] Array Partition

준규·2022년 10월 17일
0

길이 2n의 숫자배열 nums 가 주어질 때 nums 를 2개씩 n 개의 쌍을 만든다고 한다.

그럴 때 각 쌍에서 최솟값 하나씩을 골라내어 총 합을 만드는데 나올 수 있는 총합 중 가장 큰값을 리턴하는 문제이다.

Example을 보자

const arrayPairSum = function (nums) {
  const n = nums.length / 2;
  let result = 0;

  nums.sort((a, b) => a - b);

  if (n < 2) return nums[0];

  for (let i = 0; i < nums.length; i += 2) {
    result += nums[i];
  }

  return result;
};

2개의 쌍을 만들었을 때 최솟값만을 더해 가장 큰 합을 만들기 위해서는 nums를 오름차순으로 정렬하여 앞에서부터 2개씩 끊어 쌍을 만들면된다.

for문에서 i를 2씩 증가시켜 짝수번째 index의 숫자값만 result에 더하여 리턴해주면 된다.

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글