[백준] 11508번 2+1 세일

거북이·2023년 1월 15일
0

백준[실버4]

목록 보기
55/91
post-thumbnail

💡문제접근

  • 제품의 가격을 내림차순으로 정렬한 다음 세 개씩 슬라이싱하여 빼낸다.
  • 만약 세 개씩 짝지을 수 있다면 모든 유제품 가격을 더한 다음에 유제품 가격의 최솟값을 빼준다.
  • 만약 세 개씩 짝지을 수 없다면 모든 유제품을 돈을 주고 구매해야하므로 모두 더해준다.

💡코드(메모리 : 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

0개의 댓글