0 { result += amount } } print(result)"> 0 { result += amount } } print(result)"> 0 { result += amount } } print(result)">
import Foundation

let hw = readLine()!.components(separatedBy: " ").map{Int($0)!}
let w = hw[1]

let rain = readLine()!.components(separatedBy: " ").map{Int($0)!}
var result = 0

// 처음과 마지막 인덱스 제외
for i in 1..<w-1 {
    
    var left = 0
    var right = 0
    
    for j in 0..<i {
       left = max(left, rain[j])
    }
    
    for j in i+1..<w {
       right = max(right, rain[j])
    }
    let amount = min(left, right) - rain[i]
    if amount > 0 {
        result += amount
    }
    
}

print(result)

양 끝을 제외한 인덱스에서

내 왼쪽 최대값, 오른쪽 최대값을 구함

두 최대값 중에 작은거 선택, 현재 값이랑 빼줌 = amount

amount가 양수 일 때만 더 해줌 (가장 높은 타워의 경우 음수가 나옴)