From 1fadff5438a3d7a5af80e8973635a2e63a0727e5 Mon Sep 17 00:00:00 2001 From: LiiNi-coder <97495437+LiiNi-coder@users.noreply.github.com> Date: Thu, 16 Oct 2025 23:57:30 +0900 Subject: [PATCH] =?UTF-8?q?[20251016]=20BOJ=20/=20G4=20/=20=EC=B5=9C?= =?UTF-8?q?=EA=B3=A0=EC=9D=98=20=ED=8C=80=20=EB=A7=8C=EB=93=A4=EA=B8=B0=20?= =?UTF-8?q?/=20=EC=9D=B4=EC=9D=B8=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 \353\247\214\353\223\244\352\270\260.md" | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 "LiiNi-coder/202510/16 BOJ \354\265\234\352\263\240\354\235\230 \355\214\200 \353\247\214\353\223\244\352\270\260.md" diff --git "a/LiiNi-coder/202510/16 BOJ \354\265\234\352\263\240\354\235\230 \355\214\200 \353\247\214\353\223\244\352\270\260.md" "b/LiiNi-coder/202510/16 BOJ \354\265\234\352\263\240\354\235\230 \355\214\200 \353\247\214\353\223\244\352\270\260.md" new file mode 100644 index 00000000..c9526cdc --- /dev/null +++ "b/LiiNi-coder/202510/16 BOJ \354\265\234\352\263\240\354\235\230 \355\214\200 \353\247\214\353\223\244\352\270\260.md" @@ -0,0 +1,42 @@ +```java +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)); + List arrs = new ArrayList<>(); + String line; + while(true){ + line = br.readLine(); + if("".equals(line) || line == null){ + break; + } + StringTokenizer st=new StringTokenizer(line); + int w=Integer.parseInt(st.nextToken()); + int b=Integer.parseInt(st.nextToken()); + arrs.add(new int[]{w,b}); + } + + int n = arrs.size(); + // dp[i][j][k] = i번째 멤버까지 보았을때, 백을 j명 뽑았고, 흑을 k명 뽑았을때의 최대 점수 합 + int[][][] dp = new int[n+1][16][16]; + for(int i=1; i<=n; i++){ + int w = arrs.get(i-1)[0]; + int b = arrs.get(i-1)[1]; + for(int j=0; j<=15; j++){ + for(int k=0; k<=15; k++){ + dp[i][j][k] = dp[i-1][j][k]; + if(j > 0) + dp[i][j][k] = Math.max(dp[i][j][k], dp[i-1][j-1][k] + w); + if(k > 0) + dp[i][j][k]= Math.max(dp[i][j][k], dp[i-1][j][k-1] + b); + } + } + //System.out.println(dp[i][w][b]); + } + System.out.println(dp[n][15][15]); + } +} + +```