코딩 공부

[Python] (구현) 백준 14719번 : 빗물 본문

그외 여러 알고리즘 유형

[Python] (구현) 백준 14719번 : 빗물

Algomalgo 2024. 6. 27. 19:31
728x90


<접근 방법>
[1] 그림에 있는 그대로 블록을 1로 빈 공간을 0으로 2차원 배열을 만든다.
[2] 위에서부터 한 줄씩 차례로, 블록과 블록 사이에 있는 물을 더해준다.


H, W = map(int, input().split())
lst = list(map(int, input().split()))
arr = [[0]*W for _ in range(H)]

# 2차원 배열 구현
for j in range(W):
    for i in range(H-1, H-lst[j]-1, -1):
        arr[i][j] = 1
        
total = 0
for i in range(H):
    temp = 0
    for j in range(W-1):
        if arr[i][j] == 1:
            for k in range(j+1, W):
                if arr[i][k] == 0:
                    temp += 1
                else:
                    total += temp
                    j += temp
                    temp = 0
                    break
print(total)

이해가 되지 않는 부분이 있으면 질문 주세요. 감사합니다.

728x90