[백준 14719] 빗물
Tip
•
각각의 지점에서 물이 고이는 양 구하기 (양 끝 지점 제외)
◦
해당 지점 기준으로 가장 높은 블록 찾기 (왼쪽, 오른쪽 각각 따로)
▪
slice 기능 이용
▪
그 중 더 작은 값을 사용
◦
해당 지점의 블록 높이가 찾은 블록 높이보다 낮은 경우
▪
찾은 블록 높이 - 해당 지점 블록 높이 = 해당 지점에 물이 고이는 양
풀이 소스 코드
import sys
si = sys.stdin.readline
h, w = map(int, si().split())
array = list(map(int, si().split()))
water = 0
for i in range(1, w - 1):
left_max = max(array[:i])
right_max = max(array[i + 1:])
compare = min(left_max, right_max)
if array[i] < compare:
water += compare - array[i]
print(water)
Python