고이는 빗물의 총량 구하기.
입력 | 출력 |
---|---|
4 4 3 0 1 4 | 5 |
4 8 3 1 2 3 4 1 1 2 | 5 |
3 5 0 0 0 2 0 | 0 |
: 완전 탐색인가? 그냥 숫자 빼기로 할 수 있을 것 같은데..
해당 원소 기준으로 왼쪽에서 가장 큰 값, 오른쪽에서 가장 큰 값을 구해서 둘 중 더 작은 값을 기준으로 해당 원소의 차이를 구한다. -> 이 차이 값들의 합
h, w = map(int, input().split())
block = list(map(int, input().split()))
ans = 0
for i in range(len(block)):
lmax = max(block[:i+1])
rmax = max(block[i:])
pivot = min(lmax, rmax)
ans += (pivot - block[i])
print(ans)
알면 아주 쉬운 문제인 것 같다.