I. Description
문제 링크: https://leetcode.com/problems/divide-an-array-into-subarrays-with-minimum-cost-i/description/
II. Code
방법이 바로 떠오르진 않았지만, 곧 첫 번째 항은 무조건 cost에 포함되고 그 뒤 항에서 최소인 2개의 항을 cost에 포함시키면 된다는 것을 알았다.
class Solution:
def minimumCost(self, nums: List[int]) -> int:
min_val = float('inf')
second_min = float('inf')
for num in nums[1:]:
if num <= min_val:
second_min = min_val
min_val = num
elif min_val <= num < second_min:
second_min = num
return nums[0] + min_val + second_min
if num == min_val 과 min_val == num인 경우에도 second_min과 min_val에 변화를 줘야 한다는 사실을 놓치면 안 되겠다.
'Coding Test > Hash Table' 카테고리의 다른 글
[LeetCode] 3. Longest Substring Without Repeating Characters (0) | 2024.12.05 |
---|---|
[LeetCode] 1. Two Sum (2) | 2024.12.02 |
[LeetCode] 849. Maximize Distance to Closest Person (0) | 2024.12.02 |
[LeetCode] 3174. Clear Digits (2) | 2024.12.01 |
[LeetCode] 977. Squares of a Sorted Array (0) | 2024.12.01 |