From 92ad2cd8b514f545d198dbe2364416da2ccd5180 Mon Sep 17 00:00:00 2001 From: Jeongha Park <162397816+mirupio@users.noreply.github.com> Date: Sat, 5 Sep 2026 14:24:30 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=98?= =?UTF-8?q?=EB=A8=B8=EC=8A=A4131129=20-=20=EC=B9=B4=EC=9A=B4=ED=8A=B8=20?= =?UTF-8?q?=EB=8B=A4=EC=9A=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/programmers/algorithm/dp/Q131129.java | 60 +++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/programmers/algorithm/dp/Q131129.java diff --git a/src/programmers/algorithm/dp/Q131129.java b/src/programmers/algorithm/dp/Q131129.java new file mode 100644 index 0000000..e7d75dc --- /dev/null +++ b/src/programmers/algorithm/dp/Q131129.java @@ -0,0 +1,60 @@ +package programmers.algorithm.dp; + +class Q131129 { + public int[] solution(int target) { + int[] answer = {}; + + int[][] dp = new int[target+1][2]; + for(int i=0;i<=target;i++){ + dp[i][0] = Integer.MAX_VALUE; + dp[i][1] = 0; + } + + dp[0][0] = 0; + for(int i=1;i<=target;i++){ + for(int j=1;j<=20;j++){ + // 불 + if(i-50>=0){ + if(dp[i][0] > dp[i-50][0]+1){ + dp[i][0] = dp[i-50][0]+1; + dp[i][1] = dp[i-50][1]+1; + } + + else if(dp[i][0] == dp[i-50][0]+1){ + dp[i][1] = Math.max(dp[i][1],dp[i-50][1]+1); + } + } + + // 싱글 + if(i-j>=0){ + if(dp[i][0] > dp[i-j][0]+1){ + dp[i][0] = dp[i-j][0]+1; + dp[i][1] = dp[i-j][1]+1; + } + else if(dp[i][0] == dp[i-j][0]+1){ + dp[i][1] = Math.max(dp[i][1],dp[i-j][1]+1); + } + } + + // 더블 + if(i-2*j>=0){ + if(dp[i][0] > dp[i-2*j][0]+1){ + dp[i][0] = dp[i-2*j][0]+1; + dp[i][1] = dp[i-2*j][1]; + } + } + + // 트리플 + if(i-3*j>=0){ + if(dp[i][0] > dp[i-3*j][0]+1){ + dp[i][0] = dp[i-3*j][0]+1; + dp[i][1] = dp[i-3*j][1]; + } + } + } + + } + + return dp[target]; + } +} \ No newline at end of file From 257a3cc1ed7960d0e5d9f3f634e22ef06a2156fb Mon Sep 17 00:00:00 2001 From: Jeongha Park <162397816+mirupio@users.noreply.github.com> Date: Sat, 5 Sep 2026 15:40:10 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=98?= =?UTF-8?q?=EB=A8=B8=EC=8A=A462050=20-=20=EC=A7=80=ED=98=95=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/programmers/algorithm/mst/Q62050.java | 118 ++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 src/programmers/algorithm/mst/Q62050.java diff --git a/src/programmers/algorithm/mst/Q62050.java b/src/programmers/algorithm/mst/Q62050.java new file mode 100644 index 0000000..6628067 --- /dev/null +++ b/src/programmers/algorithm/mst/Q62050.java @@ -0,0 +1,118 @@ +package programmers.algorithm.mst; + +import java.util.*; + +class Q62050 { + static int[][] group; + static int[][] Land; + static int N; + static int H; + + static int[] dRow = {-1,1,0,0}; + static int[] dCol = {0,0,-1,1}; + + static class Edge{ + int from; + int to; + int cost; + + Edge(int from, int to, int cost){ + this.from = from; + this.to = to; + this.cost = cost; + } + } + + static int[] parent; + + public int solution(int[][] land, int height) { + int answer = 0; + + Land = land; + N = land.length; + H = height; + + group = new int[N][N]; + + // dfs -> 공짜로 이동 가능한 칸끼리 구역 만들기 + int groupNum = 1; + for(int r=0;r edges = new ArrayList<>(); + for(int r=0;r=0 && nr=0 && nc a.cost-b.cost); + + // kruskal(union-find)로 싼 사다리부터 연결 + parent = new int[groupNum]; + for(int i=1;i=0 && nr=0 && nc Date: Sat, 5 Sep 2026 17:57:57 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=98?= =?UTF-8?q?=EB=A8=B8=EC=8A=A4150366=20-=20=ED=91=9C=20=EB=B3=91=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/programmers/algorithm/mst/Q150366.java | 128 +++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 src/programmers/algorithm/mst/Q150366.java diff --git a/src/programmers/algorithm/mst/Q150366.java b/src/programmers/algorithm/mst/Q150366.java new file mode 100644 index 0000000..a875b99 --- /dev/null +++ b/src/programmers/algorithm/mst/Q150366.java @@ -0,0 +1,128 @@ +package programmers.algorithm.mst; + +import java.util.*; + +class Q150366 { + static int[] parent; + public String[] solution(String[] commands) { + List answer = new ArrayList<>(); + + String[] table = new String[2500]; + Map map = new HashMap<>(); + + parent = new int[2500]; + for(int i=0;i<2500;i++){ + parent[i] = i; + } + + for(int i=0;i group = new ArrayList<>(); + for(int j=0;j<2500;j++){ + if(find(j) == root){ + group.add(j); + } + } + for(int x: group){ + parent[x] = x; + table[x] = null; + } + + table[num] = value; + } + + else{ + int r = Integer.parseInt(tokens[1]); + int c = Integer.parseInt(tokens[2]); + + int num = (r-1)*50+(c-1); + + int root = find(num); + + if(table[root] == null){ + answer.add("EMPTY"); + } + else{ + answer.add(table[root]); + } + } + } + + return answer.toArray(new String[0]); + } + + static int find(int x){ + if(parent[x] == x){ + return x; + } + + return parent[x]=find(parent[x]); + } +} \ No newline at end of file From 665358a7224d9d7462b99dccc2039e03dd47a900 Mon Sep 17 00:00:00 2001 From: Jeongha Park <162397816+mirupio@users.noreply.github.com> Date: Sat, 5 Sep 2026 18:41:34 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=98?= =?UTF-8?q?=EB=A8=B8=EC=8A=A464062=20-=20=EC=A7=95=EA=B2=80=EB=8B=A4?= =?UTF-8?q?=EB=A6=AC=20=EA=B1=B4=EB=84=88=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../algorithm/binarySearch/Q64062.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/programmers/algorithm/binarySearch/Q64062.java diff --git a/src/programmers/algorithm/binarySearch/Q64062.java b/src/programmers/algorithm/binarySearch/Q64062.java new file mode 100644 index 0000000..5e8eba1 --- /dev/null +++ b/src/programmers/algorithm/binarySearch/Q64062.java @@ -0,0 +1,44 @@ +package programmers.algorithm.binarySearch; + +class Q64062 { + static int K; + public int solution(int[] stones, int k) { + int answer = 0; + + K = k; + + int left = 0; + int right = 200000000; + while(left<=right){ + int mid = left + (right-left)/2; + // System.out.println("mid="+mid); + + if(available(stones,mid)){ + answer = mid; + left = mid+1; + } + else{ + right = mid-1; + } + } + + return answer; + } + + static boolean available(int[] stones, int friend){ + int count = 0; + for(int i=0;i= K){ + return false; + } + } + + return true; + } +} \ No newline at end of file From c3b3d0294b489d871f88fb485d483e14df1c0887 Mon Sep 17 00:00:00 2001 From: Jeongha Park <162397816+mirupio@users.noreply.github.com> Date: Sat, 5 Sep 2026 19:14:54 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=98?= =?UTF-8?q?=EB=A8=B8=EC=8A=A412979=20-=20=EA=B8=B0=EC=A7=80=EA=B5=AD=20?= =?UTF-8?q?=EC=84=A4=EC=B9=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/programmers/algorithm/greedy/Q12979.java | 42 ++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/programmers/algorithm/greedy/Q12979.java diff --git a/src/programmers/algorithm/greedy/Q12979.java b/src/programmers/algorithm/greedy/Q12979.java new file mode 100644 index 0000000..e9799ba --- /dev/null +++ b/src/programmers/algorithm/greedy/Q12979.java @@ -0,0 +1,42 @@ +package programmers.algorithm.greedy; + +class Q12979 { + public int solution(int n, int[] stations, int w) { + int answer = 0; + + int wdis = 2*w+1; + + int left = 1; + int right = 0; + int count = 0; + for(int station: stations){ + right = station-w-1; + + int dis = right-left+1; + if(dis>=1){ + if(dis%wdis == 0){ + count += dis/wdis; + } + else{ + count += dis/wdis+1; + } + } + // System.out.println("station="+station+" left="+left+" right="+right+" dis="+dis+" count="+count); + left = station+w+1; + } + + right = n; + int dis = right-left+1; + if(dis>=1){ + if(dis%wdis == 0){ + count += dis/wdis; + } + else{ + count += dis/wdis+1; + } + } + + // System.out.println(" left="+left+" right="+right+" dis="+dis+" count="+count); + return count; + } +} \ No newline at end of file