💡문제접근
- 제품의 가격을 내림차순으로 정렬한 다음 세 개씩 슬라이싱하여 빼낸다.
- 만약 세 개씩 짝지을 수 있다면 모든 유제품 가격을 더한 다음에 유제품 가격의 최솟값을 빼준다.
- 만약 세 개씩 짝지을 수 없다면 모든 유제품을 돈을 주고 구매해야하므로 모두 더해준다.
💡코드(메모리 : 118092KB, 시간 : 164ms, PyPy3로 제출)
import sys
N = int(input())
price = []
for _ in range(N):
price.append(int(sys.stdin.readline().strip()))
price.sort(reverse=True)
total = 0
for i in range(0, len(price), 3):
part_price = price[i:i+3]
if len(part_price) == 3:
total += sum(part_price) - min(part_price)
else:
total += sum(part_price)
print(total)
💡소요시간 : 4m