From 2db3a52052480ab1ab23c3b7afe648da87e84c32 Mon Sep 17 00:00:00 2001 From: JAEHEE25 Date: Tue, 27 Jan 2026 16:20:52 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[Week04]=20BOJ=2014925:=20=EB=AA=A9?= =?UTF-8?q?=EC=9E=A5=20=EA=B1=B4=EC=84=A4=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JAEHEE25.java" | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 "weekly/week04/BOJ_14925_\353\252\251\354\236\245\352\261\264\354\204\244\355\225\230\352\270\260/JAEHEE25.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); + } +} From ba66e00a3af87ed520d87b175c92e9e7223bf290 Mon Sep 17 00:00:00 2001 From: JAEHEE25 Date: Tue, 27 Jan 2026 23:46:06 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[Personal]=20BOJ=202156:=20=ED=8F=AC?= =?UTF-8?q?=EB=8F=84=EC=A3=BC=20=EC=8B=9C=EC=8B=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personal/JAEHEE25/BOJ/BOJ2156.java | 24 +++++++++++++++++++ ...\354\265\234\353\214\200\355\231\224.java" | 0 2 files changed, 24 insertions(+) create mode 100644 personal/JAEHEE25/BOJ/BOJ2156.java rename "personal/JAEHEE25/Programmers/\354\210\230\354\213\235_\354\265\234\353\214\200\355\231\224.java" => "personal/JAEHEE25/PGS/\354\210\230\354\213\235_\354\265\234\353\214\200\355\231\224.java" (100%) 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" From d01e8dde1fa2bb5d3202448be0077099ac7b4886 Mon Sep 17 00:00:00 2001 From: JAEHEE25 Date: Sat, 31 Jan 2026 20:43:57 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[Personal]=20PGS:=20=EB=94=94=EC=8A=A4?= =?UTF-8?q?=ED=81=AC=20=EC=BB=A8=ED=8A=B8=EB=A1=A4=EB=9F=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\355\212\270\353\241\244\353\237\254.java" | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 "personal/JAEHEE25/PGS/\353\224\224\354\212\244\355\201\254_\354\273\250\355\212\270\353\241\244\353\237\254.java" diff --git "a/personal/JAEHEE25/PGS/\353\224\224\354\212\244\355\201\254_\354\273\250\355\212\270\353\241\244\353\237\254.java" "b/personal/JAEHEE25/PGS/\353\224\224\354\212\244\355\201\254_\354\273\250\355\212\270\353\241\244\353\237\254.java" new file mode 100644 index 0000000..4b983b3 --- /dev/null +++ "b/personal/JAEHEE25/PGS/\353\224\224\354\212\244\355\201\254_\354\273\250\355\212\270\353\241\244\353\237\254.java" @@ -0,0 +1,58 @@ +import java.util.*; + +class Solution { + public int solution(int[][] jobs) { + Arrays.sort(jobs, (o1, o2) -> o1[0] - o2[0]); //요청 시각 기준 정렬 + + PriorityQueue waitQueue = new PriorityQueue<>(); //대기 큐 + + int totalTime = 0; + int ji = 0; //jobs 인덱스 + int time = 0; //현재 시간 + int endCnt = 0; //종료한 작업 수 + + while (endCnt < jobs.length) { + //현재 시간 전까지의 작업 모두 대기 큐에 삽입 + while (ji < jobs.length && jobs[ji][0] <= time) { + waitQueue.add(new Job(ji, jobs[ji][0], jobs[ji][1])); + ji++; + } + + //대기 큐에서 꺼내서 작업 시작 + if (!waitQueue.isEmpty()) { + Job job = waitQueue.poll(); + time += job.processTime; + totalTime += (time - job.requestTime); + endCnt++; + } else { + time = jobs[ji][0]; //처리할 작업이 없으면 다음 작업 요청 시간으로 이동 + } + } + + return totalTime / jobs.length; + } +} + +class Job implements Comparable { + int num; + int requestTime; + int processTime; + + Job(int num, int requestTime, int processTime) { + this.num = num; + this.requestTime = requestTime; + this.processTime = processTime; + } + + @Override + public int compareTo(Job o) { + //소요시간이 짧은 것 -> 요청 시각이 빠른 것 -> 번호가 작은 것 + if (this.processTime == o.processTime) { + if (this.requestTime == o.requestTime) { + return this.num - o.num; + } + return this.requestTime - o.requestTime; + } + return this.processTime - o.processTime; + } +}