[leetcode] Array Partition I
풀이
[1,4,3,2]
가 있을 때 정렬하면 [1,2/3,4]
가 된다. 여기서 1+3을 하면 최댓값이 된다. 다른 예로 [6,2,6,5,1,2]
를 정렬한 [1,2/2,5/6,6]
에서 1+2+6을 하면 된다.
이 풀이법은 sorted가 최대 시간복잡도로 O(N)이 된다.
class Solution:
def arrayPairSum(self, nums: List[int]) -> int:
nums = sorted(nums)
sum = 0
for index in range(0, len(nums), 2):
sum += nums[index]
return sum
처음에 생각한 접근법
조합으로 몇 개를 뽑아서 다 돌려봐야 하나, 최댓값부터 작은 값으로 내려가면서 계산을 해봐야 하나 별 생각을 다 했다.
참고 자료
Author And Source
이 문제에 관하여([leetcode] Array Partition I), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hotbreakb/leetcode-Array-Partition-I저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)