문제 출처 : leetcode.com/problems/array-partition-i/
문제 해석 : 주어진 배열에서 2개씩 짝을 지을때 그 최솟값의 합이 가장 큰 경우를 구하는 문제이다.
문제 풀이 : 정렬을 통해서 간단하게 풀이할 수 있다. 정렬되었을 때 가장 큰 값을 최솟값으로 하는 방법은 0번째 2번째 4번째 .... 2n번쨰 수를 선택해서 이를 더해 주는 것이다.
가능한 다른 풀이 : 직접 모든 경우를 생성하여 검사하여도 풀이할 수 있지만 이 문제는 논리적으로 간단하게 풀이 가능하기에 좋은 방법은 아니다.
풀이 코드
from typing import List
class Solution:
def arrayPairSum(self, nums: List[int]) -> int:
nums.sort()
answer = 0
for first in range(0,len(nums),2):
answer += nums[first]
return answer
if __name__ == "__main__":
solution = Solution()
nums1 = [1,4,3,2]
nums2 = [6,2,6,5,1,2]
print(solution.arrayPairSum(nums1))
print(solution.arrayPairSum(nums2))
author : donghak park
contact : donghark03@naver.com
## 문제의 저작권은 LeetCode 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.
'📊알고리즘, 문제풀이 > 📈문제풀이 (PS)' 카테고리의 다른 글
[알고리즘][Python] LeetCode 121 Best Time to Buy and Sell Stock 문제 풀이 (0) | 2021.02.19 |
---|---|
[알고리즘][Python] LeetCode 238 Product of Array Except Self 문제 풀이 (0) | 2021.02.19 |
[알고리즘][Python] LeetCode 15 3-Sum 문제 풀이 (0) | 2021.02.17 |
[알고리즘][Python] LeetCode 42 Trapping Rain Water 문제 풀이 (0) | 2021.02.17 |
[알고리즘][Python] LeetCode 1 Two Sum 문제 풀이 (0) | 2021.02.17 |