10. Array Partition I

eunseo kim 👩‍💻·2021년 1월 22일
1

🎯 leetcode - 561. Array Partition I


🤔 나의 풀이

📌 문제

- 파이썬 알고리즘 인터뷰 10번 문제

📌 날짜

2020.01.22

📌 시도 횟수

1 try

💡 Code

class Solution:
    def arrayPairSum(self, nums: List[int]) -> int:
        nums.sort()
        result = 0
        for i in range(0, len(nums)-1, 2):
            result += nums[i]
        return result

💡 문제 해결 방법

- 배열을 sort하고 짝수 번째에 있는 숫자들을 더했다.

💡 새롭게 알게 된 점

-

❌ (한번에 맞추지 못한 경우) 오답의 원인

-

😉 다른 풀이

📌 하나. (내 코드랑 비슷) 오름차순 풀이

class Solution:
    def arrayPairSum(self, nums: List[int]) -> int:
        nums.sort()
        sum = 0
        pair = []

        for n in nums:
            pair.append(n)
            if len(pair) == 2:
                sum += min(pair)
                pair = []

        return sum

💡 새롭게 알게 된 점

- pair에 2개씩 담을 때마다 초기화 시켜주는 게 재미있다.

📌 둘. 파이썬다운 방법!

class Solution:
    def arrayPairSum(self, nums: List[int]) -> int:
        return sum(sorted(nums)[::2])

💡 새롭게 알게 된 점

- sum(iterable) : iterable의 모든 원소를 sum 한 값을 반환한다.
- sorted(nums)[::2] : nums를 sorted한 list에 대하여, 2칸씩 건너 뛴 list
profile
열심히💨 (알고리즘 블로그)

0개의 댓글