Search

[백준 14719] 빗물

[백준 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