diff --git "a/lkhyun/202502/14 BOJ \352\263\250\353\223\2343 \353\217\231\354\240\204.md" "b/lkhyun/202502/14 BOJ \352\263\250\353\223\2343 \353\217\231\354\240\204.md" new file mode 100644 index 00000000..f94e1dd8 --- /dev/null +++ "b/lkhyun/202502/14 BOJ \352\263\250\353\223\2343 \353\217\231\354\240\204.md" @@ -0,0 +1,46 @@ +```java +import java.util.*; +import java.io.*; +public class Main{ + public static void main(String[] args) throws Exception{ + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + StringTokenizer st = new StringTokenizer(br.readLine()); + int X = Integer.parseInt(st.nextToken()); + + int[] info = new int[4]; + int[][] dp = new int[X+1][5]; + int[] coins = {1,5,10,25}; + for(int i=0;i<4;i++){ + info[i] = Integer.parseInt(st.nextToken()); + } + for(int i=0;i<=X;i++){ + Arrays.fill(dp[i],-1); + } + for(int i=0;i<5;i++){ + dp[0][i] = 0; + } + for(int i=1;i<=X;i++){ + for(int j = 0;j<4;j++){ + if(dp[i][j]==-1){dp[i][j]=0;} + if(i-coins[j]<0){ + continue; + } + if(dp[i-coins[j]][4]>dp[i][4]){ + if(info[j] > dp[i-coins[j]][j]){ + for(int k=0;k<=4;k++){ + dp[i][k] = dp[i-coins[j]][k]; + } + dp[i][j]++; + dp[i][4]++; + } + } + } + } + for(int i=0;i<4;i++){ + bw.write(dp[X][i]+" "); + } + bw.flush(); + } +} +```