diff --git a/personal/JAEHEE25/BOJ/BOJ2156.java b/personal/JAEHEE25/BOJ/BOJ2156.java new file mode 100644 index 0000000..c763e26 --- /dev/null +++ b/personal/JAEHEE25/BOJ/BOJ2156.java @@ -0,0 +1,24 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class BOJ2156 { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int N = Integer.parseInt(br.readLine()); + int[] wines = new int[N+1]; + for (int i = 1; i <= N; i++) { + wines[i] = Integer.parseInt(br.readLine()); + } + + int[] dp = new int[N+1]; //dp[i] = i까지 최대로 마실 수 있는 포도주의 양 + for (int i = 1; i <= N; i++) { + if (i == 1) dp[1] = wines[1]; + else if (i == 2) dp[2] = wines[1] + wines[2]; + else dp[i] = Math.max(dp[i-1], wines[i] + Math.max(dp[i-2], dp[i-3] + wines[i-1])); + } + + System.out.println(dp[N]); + + } +} diff --git "a/personal/JAEHEE25/Programmers/\354\210\230\354\213\235_\354\265\234\353\214\200\355\231\224.java" "b/personal/JAEHEE25/PGS/\354\210\230\354\213\235_\354\265\234\353\214\200\355\231\224.java" similarity index 100% rename from "personal/JAEHEE25/Programmers/\354\210\230\354\213\235_\354\265\234\353\214\200\355\231\224.java" rename to "personal/JAEHEE25/PGS/\354\210\230\354\213\235_\354\265\234\353\214\200\355\231\224.java" diff --git "a/weekly/week04/BOJ_14925_\353\252\251\354\236\245\352\261\264\354\204\244\355\225\230\352\270\260/JAEHEE25.java" "b/weekly/week04/BOJ_14925_\353\252\251\354\236\245\352\261\264\354\204\244\355\225\230\352\270\260/JAEHEE25.java" new file mode 100644 index 0000000..412426a --- /dev/null +++ "b/weekly/week04/BOJ_14925_\353\252\251\354\236\245\352\261\264\354\204\244\355\225\230\352\270\260/JAEHEE25.java" @@ -0,0 +1,35 @@ +package week04.BOJ_14925_목장건설하기; + +import java.util.*; +import java.lang.*; +import java.io.*; + +class BOJ14925 { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + int M = Integer.parseInt(st.nextToken()); + int N = Integer.parseInt(st.nextToken()); + int[][] land = new int[M][N]; + int[][] dp = new int[M+1][N+1]; + int L = 0; + + for (int i = 0; i < M; i++) { + st = new StringTokenizer(br.readLine()); + for (int j = 0; j < N; j++) { + land[i][j] = Integer.parseInt(st.nextToken()); + } + } + + int answer = 0; + for (int i = 1; i <= M; i++) { + for (int j = 1; j <= N; j++) { + if (land[i-1][j-1] == 0) { + dp[i][j] = Math.min(Math.min(dp[i-1][j], dp[i][j-1]), dp[i-1][j-1]) + 1; //위, 왼쪽, 왼쪽 위 + answer = Math.max(dp[i][j], answer); + } + } + } + System.out.println(answer); + } +}