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; + } +}