[파이썬 알고리즘 인터뷰] 배열 파티션 1.
2021. 1. 5. 10:52ㆍ노트/Algorithm : 알고리즘
n개의 pair를 이용한 min(a,b)의 합으로 만들 수 있는 가장 큰 수를 출력하라.
- 입력
[1,4,3,2]
- 출력
4
- 설명
n은 2가 되며, 최대 합은 4이다
min(1,2) + min(3,4) = 4
# 풀이 1. 오름차순 풀이
def arrayPairSum(nums):
sum = 0
pair = []
nums.sort()
for n in nums:
# 앞에서부터 오름차순으로 페어를 만들어서 합 계산
pair.append(n)
if len(pair) == 2:
sum+= min(pair)
pair = []
return sum
nums = [1,4,3,2]
arrayPairSum(nums)
>>> 4
# 풀이 2. 짝수 번째 값 계산
def arrayPairSum(nums):
sum = 0
nums.sort()
for i, n in enumerate(nums):
# 짝수 번째 값의 합 계싼
if i %2 ==0:
sum += n
return sum
nums = [1,4,3,2]
arrayPairSum(nums)
>>> 4
# 풀이 3. 파이썬 다운 방식
def arrayPairSum(nums):
return sum(sorted(nums)[::2])
nums = [1,4,3,2]
arrayPairSum(nums)
>>> 4
'노트 > Algorithm : 알고리즘' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 주식을 사고팔기 가장 좋은 시점 (0) | 2021.01.08 |
---|---|
[파이썬 알고리즘 인터뷰] 자신을 제외한 배열의 곱 (0) | 2021.01.07 |
[파이썬 알고리즘 인터뷰] 세수의 합 (0) | 2021.01.04 |
[파이썬 알고리즘 인터뷰] 빗물 트래핑 (0) | 2020.12.31 |
[파이썬 알고리즘 인터뷰] 두수의 합 (0) | 2020.12.29 |