Given an integer array nums of 2n integers, group these integers into n pairs (a1, b1), (a2, b2), ..., (an, bn) such that the sum of min(ai, bi) for all i is maximized. Return the maximized sum.
사실 처음에 문제 이해가 잘 되지 않았다.
2n개의 정수들로 이루어진 배열(짝수 크기의 배열)을 n개의 짝으로 나누는데, 이 때 짝의 요소들의 최소값이 최대가 되는 합을 구하는 문제이다.
문제 이해에 비해 풀이는 간단하다.
결국 배열을 오름차순으로 정렬하고 앞에서부터 두개씩 짝지어 각 요소들의 최소값들을 합한 것이 최대값이 된다.
nums = [6,2,6,5,1,2]
output = 9
# sorted(num) = [1, 2, 2, 5, 6, 6]
# sorted(num)[::2] = [1, 2, 6]
# [::2]의 의미: 시작 인덱스부터 마지막 인덱스까지 인덱스를 2씩 증가시키면서 가져옴
# 배열[시작인덱스:끝인덱스:인덱스증가폭]
# [::2]는 시작인덱스와 끝인덱스 생략,(전체배열을 의미) 증가폭은 2
print(sum(sorted(nums)[::2]))