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())
arr = list(map(int, input().split()))
res = 0
for i in range(1, w-1):
tmp = min(max(arr[:i]), max(arr[i+1:]))
if tmp > arr[i]:
res += tmp - arr[i]
print(res)
코드는 짧지만 생각해야할 것이 많은 문제
고이는 빗물의 양을 구해야하기때문에 앞뒤로 높이 고려해서 풀 수 없다
인덱스 i 위치를 기준으로 높이의 최대값을 반으로 나눠서 비교를 하고,
두개의 최댓값중에 최소를 구해서
현재 위치보다 그 최소값이 크다면 고이는 빗물 값을 구해주는 문제이다
'💡 Codeing Test > 백준' 카테고리의 다른 글
백준 20165) 인내의 도미노 장인 호석 (0) | 2024.08.24 |
---|---|
백준 2003) 수들의 합2 (python) (0) | 2024.03.11 |
백준 22862) 가장 긴 짝수 연속한 부분 수열 (large) (1) | 2024.03.08 |
백준 5525) IOIOI (python) (0) | 2024.03.07 |
백준 1495) 기타리스트 (python) (0) | 2024.03.05 |