문제풀이/기타

[파이썬] [구현] 백준 14719 빗물

승무_ 2023. 1. 26. 11:02

문제

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

 

14719번: 빗물

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

www.acmicpc.net

코드

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

graph=[[0]*w for _ in range(h)]

"""
4 4
3 0 1 4
을

0001
1001
1001
1011
로 표현
"""
for index, value in enumerate(array):
    n=h-1
    while(value):
        graph[n][index]=1
        value-=1
        n-=1

result=0
for i in range(h-1,-1,-1):
    flag=-1
    for j in range(w):
        if graph[i][j]==1:
            if flag!=-1: result+=(j-flag-1)
            flag=j

print(result)