백준 1758. 알바생 강호
문제는 간단한 문제인데도 정답 비율이 40%도 안되는 문제이다.
카페를 기다리는 대기줄 순위에 따라서 본래 알바생 강호가 받을 수 있었던 팁이 일정 규칙에 따라 줄어들기 때문에
손님이 지불하려고 하는 팁이 주어졌을 때,
손님의 순서를 적절히 바꿔 강호가 받을 수 잇는 팁의 최댓값을 구하는 문제이다.
문제에서 제시한 조건
각 손님은 강호에게 원래 주려고 생각했던 돈 - (받은 등수 - 1) 만큼의 팁을 강호에게 준다.
만약, 위의 식으로 나온 값이 음수라면, 강호는 팁을 받을 수 없다.
강호는 손님의 순서를 마음대로 바꿀 수 있다.
문제 풀이 방법
최대 이익을 얻기 위해서는 팁이 가장 많은 사람이 가장 먼저 입장시키면 된다.
따라서 파이썬에 내장된 정렬 메소드만 잘 활용하면 되는 문제이다.
파이썬 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # 알바생 강호 (1758) import sys def greedy(tipList): total_tip = 0 for idx, tip in enumerate(tipList): real_tip = tip - ((idx + 1) - 1) if real_tip <= 0: break total_tip += real_tip return total_tip if __name__=="__main__": n = int(sys.stdin.readline().strip()) tipList = [] for i in range(0, n): tip = sys.stdin.readline().strip() tipList.append(int(tip)) tipList.sort(reverse=True) print(greedy(tipList)) | cs |
#백준 1758 알바생 강호 #파이썬 1758 알바생 강호 #python 1758 알바생 강호 #1758 알바생 강호 python #백준 알바생 강호 #백준 알바생 강호 python #그리디 알고리즘 #백준 그리디 알고리즘
'온라인 코딩 테스트 문제 풀이 > 백준 문제 풀이' 카테고리의 다른 글
python으로 푸는 백준 14889. 스타트와 링크 (0) | 2019.02.07 |
---|---|
Python으로 푸는 백준 2109. 순회강연 (0) | 2019.02.06 |
Python으로 푸는 백준 1946. 신입사원 (0) | 2019.02.04 |
Python으로 푸는 백준 1931. 회의실배정 (1) | 2019.02.01 |