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가 양수 일 때만 더 해줌 (가장 높은 타워의 경우 음수가 나옴)