본문 바로가기
Algorithm/baekjoon

[파이썬]baekjoon 14719: 빗물

by 갈잃자 2023. 2. 7.

https://www.acmicpc.net/problem/14719

 

14719번: 빗물

첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치

www.acmicpc.net


이 문제에서 중요한 건 빗물이 고이는 구간을 설정하는 것이다

 

for문을 돌며 왼쪽과 오른쪽 큰 길이를 구하고

 

그 길이중 짧은것에 맞춰 빗물이 고이는 양을 구해주면 된다.

h, w = map(int, input().split())
arr = list(map(int, input().split()))

result = 0
for i in range(1, w-1):
    leftmax = max(arr[:i])
    rightmax = max(arr[i+1:])

    fin = min(leftmax, rightmax)

    if arr[i] < fin:
        result += fin - arr[i]
print(result)

댓글