배열 파티션
n 개의 페어를 이용한 min(a,b)의 합으로 만들수 있는 가장 큰수를 출력해라
def arrayPairSum(nums):
nums.sort()
answer = 0
for i in range(len(nums)):
if (i % 2 == 0):
answer += nums[i]
return answer
nums = [1, 4, 3, 2]
print(arrayPairSum(nums))
#아이디어
- 정렬되지 않은 배열을 오름차순으로 정렬을한다. ex) [1,2,3,4]
- min(a,b)의 합들중 가장 큰 수를 구하기 위해서는 짝수번째 수들의 합이다.
답지풀이
def arrayPairSum(nums):
nums.sort()
answer = 0
return sum(sorted(nums)[::2])
nums = [1, 4, 3, 2]
print(arrayPairSum(nums))
- 짝수번째 들의 합을 for문을 직접 돌려서 if문으로 거르는것이 아니라 Slicing으로 쉽게 구현
list[시작인덱스 : 끝인덱스 : 인덱스 증가폭]
배운것
파이썬의 기능을 사용하면 더 짧고 간결한 코드를 구현할수 있다.
'항해99 chap02' 카테고리의 다른 글
홀짝 연결 리스트 (0) | 2022.01.18 |
---|---|
역순 연결 리스트 (0) | 2022.01.18 |
두 정렬 리스트의 병합 (0) | 2022.01.18 |
그룹 애너그램 (0) | 2022.01.18 |
가장 긴 펠린드롬 부분 문자열 (0) | 2022.01.18 |