문제📖
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2F1a0a108a-553b-4875-b9e9-67afbecd3ead%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-05%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.05.05.png)
풀이🙏
- 웅찬이는 가장 점수를 많이 받을 수 있도록 과제를 수행하고 싶다.
- 첫 줄에 정수 N이 주어진다.
- 다음 줄부터 N개의 줄에는 각각 두 정수 d, w가 주어진다.
- d는 과제 마감일까지 남은 일수를 의미하며, w는 과제의 점수를 의미한다.
- 얻을 수 있는 점수의 최댓값을 출력한다.
코드💻
import sys
def homework(n, l):
answer = [0 for _ in range(1000)]
for i in range(n):
for j in range(l[i][0]-1, -1, -1):
if answer[j] == 0:
answer[j] = l[i][1]
break
return sum(answer)
N = int(sys.stdin.readline())
l = []
for _ in range(N):
d, w = map(int, sys.stdin.readline().split())
l.append([d, w])
print(homework(N, sorted(l, reverse=True, key=lambda x : x[1])))
결과😎
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2Fc4f12f37-635a-484f-ac13-1dd35388f10b%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-05%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.30.08.png)
출처 && 깃허브📝
boj
github