반응형
[ Contents ]
1. 문제 (링크 참조)
1758번: 알바생 강호
첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같
www.acmicpc.net
2. 문제 풀이
팁 + (1 - 순서)
최대한 많은 팁을 얻어야 합니다. 순서가 늦어질수록 팁이 낮아지며, 음수가 되면 아예 받지 못합니다.
2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결
[Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결
경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '350도'나 됩니다. 자기 자신 빼곤 다 보이기 때문에, 다
star7sss.tistory.com
자본주의대로 풀이하시면 됩니다. 더 많은 팁을 주는 손님부터 받습니다. 그래야 팁 손실을 줄일 수 있습니다.
3. 코드
import sys
input = sys.stdin.readline
# 입력
n = int(input())
tips = []
for _ in range(n):
tips.append(int(input()))
# 내림차순 정렬
tips.sort(reverse=True)
# 팀 많이 주는 사람부터 주문 받기
res = 0
for idx, tip in enumerate(tips, 1):
# 팁이 음수이면 0
if tip + (1 - idx) < 0:
pass
else:
res += tip + (1 - idx)
print(res)
팁을 1만 주려고 했던 사람을 5순위로 미뤄도 1만 손해보게 되지만, 팁을 5만큼 주려고 했던 사람을 5순위로 미루면 5를 손해보게 됩니다.
따라서 내림차순으로 정렬하고 팁을 받습니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/문자열] 백준 10823 더하기 2 - 파이썬(Python) (0) | 2022.11.08 |
---|---|
[구현/문자열] 백준 25083 새싹 - 파이썬(Python) (0) | 2022.11.07 |
[구현/수학] 백준 1598 꼬리를 무는 숫자 나열 - 파이썬(Python) (0) | 2022.11.05 |
[구현/수학] 백준 4635 Speed Limit - 파이썬(Python) (0) | 2022.11.04 |
[구현/문자열] 백준 1284 집 주소 - 파이썬(Python) (0) | 2022.11.03 |
댓글