PS/BOJ

[Python] 11508번 2+1 세일

s_omi 2024. 7. 20. 09:46
728x90
반응형
SMALL

✏️ 문제

 

문제 파악

꾸러미 중에 제일 작은 가격이 공짜이므로 큰 금액을 공짜로 받으면 이득이므로 꾸러미에 제일 작은 가격과 그 가격과 별로 차이 나지 않는 가격들끼리 묶어놓는 게 좋다.

 

그래서 정렬을 사용한 후 3의 배수 번째의 위치에 있는 가격들이 공짜이므로 그 가격들 제외하고 더하는 방식으로 풀었다.

 

알고리즘

  • 그리디 알고리즘
  • 정렬

 

 

코드

n = int(input())
price = 0
milk = []

for i in range(n):
  milk.append(int(input()))

milk.sort(reverse=True)

for i in range(0, n):
  if (i+1) % 3 != 0: # 3번째의 위치빼고 다 가격을 지불
    price += milk[i]

print(price)

 

 

728x90
반응형
LIST

'PS > BOJ' 카테고리의 다른 글

[Python] 9237번 이장님 초대  (0) 2024.07.20
[Python] 1758번 알바생 강호  (0) 2024.07.20
[Python] 1969번 DNA  (0) 2024.07.19
[Python] 2828번 사과 담기 게임  (0) 2024.07.19
[Python] 19941번 햄버거 분배  (0) 2024.07.19