높이를 입력받아 비 온 후 얼마나 많은 물이 쌓일 수 있는지 계산하라.
def solution(rains):
if not rains:
return 0
vol = 0
left, right = 0, len(rains) - 1
left_max, right_max = rains[left], rains[right]
while left < right:
left_max, right_max = max(rains[left], left_max), max(rains[right], right_max)
if left_max <= right_max:
vol += left_max - rains[left]
left += 1
else:
vol += right_max - rains[right]
right -= 1
return vol