Problem Solving/백준

[14719] 빗물

충무로술겜마 2021. 9. 21. 20:15

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

 

14719번: 빗물

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

www.acmicpc.net

브루트포스로 (H와 W의 범위가 1부터 500까지) 해결할 수 있는 문제입니다.

입력받은 배열을 순서대로 훑어가며, 해당 자리의 왼쪽 중 가장 큰 숫자, 오른쪽 중 가장 큰 숫자를 비교하여 작은것을 구한뒤, 해당 값에 현재 자리의 크기를 빼면, 해당 위치가 가질 수 있는 물의 양이 나옵니다. 

 

저는 result 배열로 따로 저장해두었다 sum으로 처리하였습니다.

1
2
3
4
5
6
7
8
9
h, w = map(int, input().split())
arr = list(map(int, input().split()))
result = [0 for _ in range(w)]
for i in range(w):
    mLeft = max(arr[:i+1])
    mRight = max(arr[i:])
    result[i] = abs(arr[i] - min(mLeft, mRight))
 
print(sum(result))
cs

'Problem Solving > 백준' 카테고리의 다른 글

[25175] 두~~부 두부 두부  (1) 2022.05.21
[21099] Four XOR  (0) 2021.09.11
[10943] 랜덤 게임~  (0) 2021.09.04
[4661] Falling Leaves  (0) 2021.09.04
[2108] 통계학  (0) 2021.08.02