From 9c2b6ed9fefd285fdc14630c979169545e2604f7 Mon Sep 17 00:00:00 2001 From: Donew <47556347+03do-new30@users.noreply.github.com> Date: Wed, 19 Feb 2025 20:41:09 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[20250218]=20BOJ=20/=20=EA=B3=A8=EB=93=9C5?= =?UTF-8?q?=20/=20=EB=94=94=EC=A0=80=ED=8A=B8=20/=20=EC=8B=A0=EB=8F=99?= =?UTF-8?q?=EC=9C=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5 \353\224\224\354\240\200\355\212\270.md" | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 "03do-new30/202502/19 BOJ G5 \353\224\224\354\240\200\355\212\270.md" diff --git "a/03do-new30/202502/19 BOJ G5 \353\224\224\354\240\200\355\212\270.md" "b/03do-new30/202502/19 BOJ G5 \353\224\224\354\240\200\355\212\270.md" new file mode 100644 index 00000000..820a88ef --- /dev/null +++ "b/03do-new30/202502/19 BOJ G5 \353\224\224\354\240\200\355\212\270.md" @@ -0,0 +1,59 @@ +```java +import java.util.*; +import java.io.*; + +// [BOJ] 17953_디저트 +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + StringTokenizer st = new StringTokenizer(br.readLine()); + int N = Integer.parseInt(st.nextToken()); + int M = Integer.parseInt(st.nextToken()); + + // point[i][j] = i번째 디저트를 j일째에 먹는 경우 만족감 + int[][] point = new int[M + 1][N + 1]; + for (int i = 1; i < M + 1; i++) { + st = new StringTokenizer(br.readLine()); + for (int j = 1; j < N + 1; j++) { + point[i][j] = Integer.parseInt(st.nextToken()); + } + } + + // 한 주기마다 얻을 수 있는 만족감의 최댓값을 출력한다. + + // dp[day][dessert] = dessert를 day일에 먹는 경우 얻을 수 있는 만족감의 최대 + int[][] dp = new int[N + 1][M + 1]; + + for (int day = 1; day < N + 1; day++) { + for (int dessert = 1; dessert < M + 1; dessert++) { + if (day == 1) { + dp[day][dessert] = point[dessert][day]; + continue; + } + for (int prev = 1; prev < M + 1; prev++) { + if (prev == dessert) { + // 전날에 같은 디저트를 먹은 경우 + dp[day][dessert] = Integer.max(dp[day][dessert], + dp[day-1][dessert] + point[dessert][day]/2); // 만족감이 감소한다. + } else { + // 전날에 다른 디저트를 먹은 경우 + dp[day][dessert] = Integer.max(dp[day][dessert], + dp[day-1][prev] + point[dessert][day]); // 만족감이 감소하지 않는다. + } + + } + } + } + + int answer = 0; + for (int dessert = 1; dessert < M+1; dessert++) { + answer = Integer.max(answer, dp[N][dessert]); + } + System.out.println(answer); + + br.close(); + } +} + +``` From 9b46e5d3a2b157cdea5f5a0c8d68efe52ba849ab Mon Sep 17 00:00:00 2001 From: Donew <47556347+03do-new30@users.noreply.github.com> Date: Wed, 19 Feb 2025 20:41:44 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[20250219]=20BOJ=20/=20=EA=B3=A8=EB=93=9C5?= =?UTF-8?q?=20/=20=EB=94=94=EC=A0=80=ED=8A=B8=20/=20=EC=8B=A0=EB=8F=99?= =?UTF-8?q?=EC=9C=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../202502/19 BOJ G5 \353\224\224\354\240\200\355\212\270.md" | 1 - 1 file changed, 1 deletion(-) diff --git "a/03do-new30/202502/19 BOJ G5 \353\224\224\354\240\200\355\212\270.md" "b/03do-new30/202502/19 BOJ G5 \353\224\224\354\240\200\355\212\270.md" index 820a88ef..7bc409c4 100644 --- "a/03do-new30/202502/19 BOJ G5 \353\224\224\354\240\200\355\212\270.md" +++ "b/03do-new30/202502/19 BOJ G5 \353\224\224\354\240\200\355\212\270.md" @@ -2,7 +2,6 @@ import java.util.*; import java.io.*; -// [BOJ] 17953_디저트 public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in));