From a261de142e3c9e3a467257ecfa287f725f4386c0 Mon Sep 17 00:00:00 2001 From: Jinyoung Jeong <80400463+jyoung2419@users.noreply.github.com> Date: Sun, 20 Sep 2026 22:59:24 +0900 Subject: [PATCH] Create 1665. Minimum Initial Energy to Finish Tasks --- ...5. Minimum Initial Energy to Finish Tasks" | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 "leetcode3/\354\240\225\354\247\204\354\230\201/1665. Minimum Initial Energy to Finish Tasks" diff --git "a/leetcode3/\354\240\225\354\247\204\354\230\201/1665. Minimum Initial Energy to Finish Tasks" "b/leetcode3/\354\240\225\354\247\204\354\230\201/1665. Minimum Initial Energy to Finish Tasks" new file mode 100644 index 000000000..a272732b8 --- /dev/null +++ "b/leetcode3/\354\240\225\354\247\204\354\230\201/1665. Minimum Initial Energy to Finish Tasks" @@ -0,0 +1,27 @@ +/** + * @param {number[][]} tasks + * @return {number} + */ + + // 시작 조건: 실제 소모량보다 까다로운 작업 먼저 처리위해 // minimum - actual 이 큰 순서대로 청렬 + // 각 작업 시작 시 필요한 초기에너지 계산 + // 그리디 + 정렬 + // 시간복잡도: O(n log n) +var minimumEffort = function(tasks) { + tasks.sort((a, b) => { + return (b[1] - b[0]) - (a[1] - a[0]); + }); + + let spent = 0; + let answer = 0; + + for (let i = 0; i < tasks.length; i++) { + const actual = tasks[i][0]; + const minimum = tasks[i][1]; + + answer = Math.max(answer, spent + minimum); + spent += actual; + } + + return answer; +};