백준공부/java

[백준] 17845번 수강 과목 (gold 5

gomduri43 2023. 9. 24. 21:36

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st=new StringTokenizer(br.readLine());
        int n=Integer.valueOf(st.nextToken());
        int k=Integer.valueOf(st.nextToken());

        int[] dp=new int[n+1];

        for(int i=0; i<k; i++){
            st=new StringTokenizer(br.readLine());
            int v=Integer.valueOf(st.nextToken());
            int t=Integer.valueOf(st.nextToken());

            for(int j=n; j>=1; j--){
                if(j+t<=n && dp[j]!=0){
                    dp[j+t]=Math.max(dp[j+t], dp[j]+v);
                }
                if(j==t){
                    dp[j]=Math.max(dp[j], v);
                }
            }
        }

        int max=0;
        for(Integer e:dp){
            max= max < e  ? e :max;
        }
        bw.write(max+"");
        bw.flush();


    }
}