입력값을 가지고 다음 그림처럼 2차원 배열을 생성한다.
벽인 곳은 True, 벽이 아닌 물이 들어갈 수 있는 곳은 False를 저장한다.한 행씩 검사한다.
벽이 나오면 카운팅을 시작한다.
카운팅 도중에 벽이 나오면 카운팅한 빗물을 결과 값에 더해준다.
그리고 카운팅한 빗물 수를 다시 0으로 만들어준다.물인 경우에는 카운팅을 진행한다.
H, W = map(int, input().rstrip().split(' '))
blocks = list(map(int, input().rstrip().split(' ')))
def solution(H, W, blocks):
answer = 0
board = [[False for _ in range(W)] for _ in range(H)]
for i in range(W):
for count in range(H - 1, H - blocks[i] - 1, -1):
board[count][i] = True
for row in board:
flag_counting = False
rain = 0
for block in row:
if block: # 벽이면
if not flag_counting:
flag_counting = True
else:
answer += rain
rain = 0
else: # 물이면
if flag_counting:
rain += 1
print(answer)
return
solution(H, W, blocks)