2865.Β Beautiful Towers I

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