문제📖
풀이🙏
- 웅찬이는 가장 점수를 많이 받을 수 있도록 과제를 수행하고 싶다.
- 첫 줄에 정수 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])))
결과😎
출처 && 깃허브📝
boj
github