From 54693e82090872bbe657e0d8fd3819317fe457ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=8B=A0=EC=A7=80?= <101992179+ksinji@users.noreply.github.com> Date: Sat, 25 Oct 2025 23:15:01 +0900 Subject: [PATCH] =?UTF-8?q?[20251025]=20PGM=20/=20LV4=20/=20=EC=A7=95?= =?UTF-8?q?=EA=B2=80=EB=8B=A4=EB=A6=AC=20/=20=EA=B0=95=EC=8B=A0=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...25\352\262\200\353\213\244\353\246\254.md" | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 "ksinji/202510/25 PGM \354\247\225\352\262\200\353\213\244\353\246\254.md" diff --git "a/ksinji/202510/25 PGM \354\247\225\352\262\200\353\213\244\353\246\254.md" "b/ksinji/202510/25 PGM \354\247\225\352\262\200\353\213\244\353\246\254.md" new file mode 100644 index 00000000..361ef47a --- /dev/null +++ "b/ksinji/202510/25 PGM \354\247\225\352\262\200\353\213\244\353\246\254.md" @@ -0,0 +1,44 @@ +```java +import java.util.*; + +class Solution { + public int solution(int distance, int[] rocks, int n) { + Arrays.sort(rocks); + + int start = 0; + int end = distance; + int answer = 0; + + while (start <= end) { + int mid = (start+end)/2; + int cnt = cntRemove(rocks, mid, distance); + if (cnt <= n){ + answer = Math.max(mid, answer); + start = mid + 1; + } else { + end = mid - 1; + } + } + + return answer; + } + + private int cntRemove(int[] rocks, int mid, int distance){ + int start = 0; + int cnt = 0; + + for (int i=0; i= mid) { + start = rocks[i]; + } else { + cnt++; + } + } + + if (distance - start < mid){ + cnt++; + } + return cnt; + } +} +```