🤔 나의 풀이
📌 문제
- 파이썬 알고리즘 인터뷰 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