From ddc3048001ccef7c8b1db644c47c900ff08c3eed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=97=BC=ED=98=9C=EC=A0=95?= <122238744+cyzlcyzl@users.noreply.github.com> Date: Sun, 20 Sep 2026 23:31:21 +0900 Subject: [PATCH] Create 1665. Minimum Initial Energy to Finish Tasks.java --- ...nimum Initial Energy to Finish Tasks.java" | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 "leetcode3/\354\227\274\355\230\234\354\240\225/1665. Minimum Initial Energy to Finish Tasks.java" diff --git "a/leetcode3/\354\227\274\355\230\234\354\240\225/1665. Minimum Initial Energy to Finish Tasks.java" "b/leetcode3/\354\227\274\355\230\234\354\240\225/1665. Minimum Initial Energy to Finish Tasks.java" new file mode 100644 index 00000000..1c6e1625 --- /dev/null +++ "b/leetcode3/\354\227\274\355\230\234\354\240\225/1665. Minimum Initial Energy to Finish Tasks.java" @@ -0,0 +1,26 @@ +// o(n log n) +// 최소 필요 에너지 - 실제 소비 에너지가 큰 작업부터 처리 + +import java.util.Arrays; + +class Solution { + public int minimumEffort(int[][] tasks) { + Arrays.sort(tasks, (a, b) -> { + int gapA = a[1] - a[0]; + int gapB = b[1] - b[0]; + return Integer.compare(gapB, gapA); + }); + + int minimumEnergy = 0; + int spentEnergy = 0; + + for (int[] task : tasks) { + int actual = task[0]; + int minimum = task[1]; + minimumEnergy = Math.max(minimumEnergy, spentEnergy + minimum); + spentEnergy += actual; + } + + return minimumEnergy; + } +}