14719: 빗물

ewillwin·2023년 6월 23일
0

Problem Solving (BOJ)

목록 보기
86/230

  • 2차원 세계지만 1차원 리스트로 풀이
  • 블록이 쌓인 높이 리스트 (world)를 순회하면서, "해당 위치의 왼쪽의 최대값", "해당 위치의 오른쪽의 최대값" 중 작은 값에서 해당 위치의 높이를 뺀 값이 해당 위치에 담길 수 있는 빗물의 양임
import sys
from collections import deque

H, W = map(int, input().split())
world = list(map(int, sys.stdin.readline()[:-1].split()))

total = 0
for i in range(1, W-1):
	left_max = max(world[:i]); right_max = max(world[i+1:])
	
	if world[i] < min(left_max, right_max):
		total += min(left_max, right_max) - world[i]

print(total)
profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글