📊알고리즘, 문제풀이/📈문제풀이 (PS)

[알고리즘][Python] LeetCode 561 Array Partition 1 문제 풀이

Written by Donghak Park

문제 출처 : leetcode.com/problems/array-partition-i/

 

Array Partition I - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


문제 해석 : 주어진 배열에서 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 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.