문제 요약
주어진 nums의 모든 subarray들의 (최대값 - 최소값) 들의 합을 구하는 문제였습니다. 이전의 풀어본 leetcode 907가 subarray의 최소값의 합이였기 때문에 이 문제를 기억하여 대략적으로 방향이 나올 수 있었습니다.
2023.05.01 - [Algorithm/problem solving] - leetcode 907. Sum of Subarray Minimums
leetcode 907. Sum of Subarray Minimums
문제 요약 주어진 arr로 구성된 모든 subarray에서의 최소값들의 합을 구하는 문제였습니다. 해결 time limit exceed 접근법 처음에는 stack을 만들고 monotonic increasing stack을 만들고 매 index마다 stack에 들
brad903.tistory.com
해결
Increasing monotonic stack과 Decreasing monotonic stack 2개를 같이 이용하여 해결할 수 있었습니다. 각각의 monotonic stack에서 상황에 따라 계산하는 방법은 위에 첨부된 leetcode 907 풀이한 것으로 대신하겠습니다. 이 문제의 특정 nums에 대한 시뮬레이션은 아래와 같습니다.
Increasing monotonic stack 산출물은 min값을, Decreasing monotonic stack 산출물은 max값을 의미하고 있으므로 최종 계산은 Σ(Decreasing monotonic stack 산출물) - Σ(Increasing monotonic stack 산출물) 을 구해주면 되겠습니다.
교훈
이전에 비슷한 문제를 풀고 비슷하게 해결했지만 머리 속으로 잘 떠올려지지 않았습니다. 그럴때면 위와 같이 슬라이드로 하나하나 그려보자는 교훈을 얻었습니다. 확실히 그 과정이 이해가 잘 됩니다. 나중에 까먹더라도 빠르게 떠올릴 수 있을 것 같습니다.
'Algorithm > problem solving' 카테고리의 다른 글
leetcode 907. Sum of Subarray Minimums (0) | 2023.05.01 |
---|---|
leetcode 2444. Count Subarrays With Fixed Bounds (0) | 2023.05.01 |
leetcode 452. Minimum Number of Arrows to Burst Balloons (0) | 2023.03.29 |
leecode 253. Meeting Rooms II (0) | 2023.03.20 |
leetcode 2102. Sequentially Ordinal Rank Tracker (0) | 2023.03.19 |