728x90
나의풀이
def arrayPairSum(self, nums: List[int]) -> int:
nums.sort()
sum=0
for i in range(0,len(nums),2):
sum+=min(nums[i],nums[i+1])
return sum
오름차순으로 정렬후 쌍을 구하여 각 쌍의 최솟값을 구하면 항상 가장 큰 값이 나옴
짝수번째 값 계산
def arrayPairSum(self, nums: List[int]) -> int:
nums.sort()
sum=0
for i, n in enumerate(nums):
if i%2==0:
sum+=2
return sum
정렬 후 쌍을 지어 최솟값을 구하면 항상 짝수 인덱스 항이 선택됨으로 짝수 인덱스 값만 모두 더하면 된다.
파이써닉한 방법
def arrayPairSum(self, nums: List[int]) -> int:
return sum(sorted(nums)[::2])
짝수 인덱스 값만 더하는 과정을 슬라이싱을 이용하여 파이써닉하게 구한 풀이이다.
반응형
'알고리즘' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 팰린드롬 연결리스트 (0) | 2022.02.22 |
---|---|
[파이썬 알고리즘 인터뷰] 주식을 사고팔기 가장 좋은 시점 (0) | 2022.02.22 |
[파이썬 알고리즘 인터뷰] 3수의 합 (0) | 2022.02.21 |
[파이썬 알고리즘 인터뷰] 빗물 트래핑 (0) | 2022.02.21 |
[파이썬 알고리즘 인터뷰] 가장 긴 팰린드롬 부분 문자열 (0) | 2022.02.21 |