[Q. 10] 배열 파티션 1
·
코딩테스트/알고리즘
n 개의 페어를 이용한 min(a,b)의 합으로 만들 수 있는 가장 큰 수를 출력하라. 보면 이해가 안가는 문구이지만, 예제를 보고 이해하였다. 2n 개의 원소가 주어지는데 이를 n개의 min(a,b) 페어로 만든 후 그 페어들의 합이 가장 큰 경우를 출력하라는 뜻이다. 이를 해결하는 방법은 아주 간단하다. 배열을 작은 수 부터 정렬하는 것이다. 그렇게 하면 앞에서 부터 2개씩 끊었을 때, 최소 값이 더 작아지는 것을 막을 수 있다. 전체 코드는 다음과 같다. class Solution: def arrayPairSum(self, nums: List[int]) -> int: nums.sort() answer = 0 for i in range(0, len(nums), 2): answer += nums[i] ..