귀납적으로 오름차순 시 옳다는 것을 알긴했는데, 증명까진 못했다.
문제
n개의 페어를 이용한 min(a, b)의 합으로 만들 수 있는 가장 큰 수를 출력하라
입력
[1,4,3,2]
출력
4
풀이
- 정렬 후 오름차순 풀이 O(nlogn)
- 정렬 한 뒤 첫번째 항들만 더한다.
nums.sort() result = 0 for i in range(0, len(nums)-1, 2): result += nums[i] return result
- 정렬 후 오름차순 풀이 → 파이썬 다운 방식 → 슬라이싱 활용
- sorted(nums)[::2]
return sum(sorted(nums)[::2]) # 짝수 번째 인덱스만 활용
새로운 개념
- sum(sorted(nums)[::2]) → 코드가 세련되다..