- Arrayμ κΈΈμ΄κ° 1000 μ΄νμ΄κΈ° λλ¬Έμ κ° indexκ° μ΅λ κ°
maxHeight
μμ κ°μ νκ³ index μΌμͺ½, μ€λ₯Έμͺ½μ λλμ΄ mountain 쑰건μ λ§μ‘±νλ λμ΄μ ν© sum
μ ꡬνλ€. κ·Έλ¦¬κ³ sum
κ° μ€μμ μ΅λκ° maxSum
μ μ·¨νλ©΄ λλ€.
class Solution {
public:
long long maximumSumOfHeights(vector<int>& maxHeights) {
long long maxSum = 0;
for (int maxIndex = 0; maxIndex < maxHeights.size(); ++maxIndex) {
int maxHeight = maxHeights[maxIndex];
long long sum = maxHeight;
int curHeight = maxHeight;
for (int i = maxIndex - 1; i >= 0; --i) {
if (maxHeights[i] < curHeight) {
curHeight = maxHeights[i];
}
sum += curHeight;
}
curHeight = maxHeight;
for (int i = maxIndex + 1; i < maxHeights.size(); ++i) {
if (maxHeights[i] < curHeight) {
curHeight = maxHeights[i];
}
sum += curHeight;
}
if (sum > maxSum) maxSum = sum;
}
return maxSum;
}
};