IT/ps
백준 16493번 최대 페이지 수
u149_cinderella
2025. 3. 10. 13:32
순서가 상관없기 때문에 사실 냅색문제다.
import sys
n,m=map(int,sys.stdin.readline().rstrip().split())
arr=[[] for _ in range(m)]
v=[[0]*(m+1) for _ in range(n+1)]
for i in range(m):
arr[i]=list(map(int,sys.stdin.readline().rstrip().split()))
for i in range(1,n+1):
for j in range(1,m+1):
if i-arr[j-1][0]<0:
v[i][j]=v[i][j-1]
continue
v[i][j]=max(v[i][j-1],v[i-arr[j-1][0]][j-1]+arr[j-1][1])
print(v[n][m])
냅색은 진짜 헷갈린다.
연습을 좀더 해야겠다.