-
561. Array Partition IAlgorithm/python tip 2021. 2. 26. 23:09
leetcode.com/problems/array-partition-i/
''' 2개씩 묶었을때 각 pair의 min의 합이 최대가 되도록 했을때 값을 구하라 solution) sorting -> 순서대로 묶는다 각 pair의 min이 선택값이기 때문에 최대한 큰 값에 영향을 덜주도록 그루핑을 해야한다. ''' class Solution(object): def arrayPairSum(self, nums): ans=0 nums.sort() for i in range(0, len(nums), 2): if(nums[i] < nums[i+1]): ans += nums[i] else: ans += nums[i+1] return ans """ :type nums: List[int] :rtype: int """
better answer:
- 어차피 정렬되어있기 때문에 크기 비교는 할 필요가 없다.
class Solution: def arrayPairSum(self, nums: List[int]) -> int: nums.sort() sum_ = 0 for i in range(0,len(nums),2): sum_ += nums[i] return sum_ # Time : 356 ms # Memory : 16.7 M
best answer:
- use this syntax (L[start:stop:step])
- stackoverflow.com/questions/2990121/how-do-i-loop-through-a-list-by-twos
class Solution: def arrayPairSum(self, nums: List[int]) -> int: return sum(sorted(nums)[::2]) # Time : 332 ms # Memory : 16.5 M
'Algorithm > python tip' 카테고리의 다른 글
1765. Map of Highest Peak (0) 2021.03.01 1052. Grumpy Bookstore Owner (0) 2021.02.28 1481. Least Number of Unique Integers after K Removals (0) 2021.02.28 565. Array Nesting (0) 2021.02.27 942. DI String Match (0) 2021.02.27