BOJ - 14719

주의·2024년 3월 7일
0

boj

목록 보기
214/214

백준 문제 링크
빗물

❓접근법

  1. 현재 위치에서 왼쪽에서 가장 큰 높이와
    오른쪽에서 가장 큰 높이를 찾아준다.
    ( 빗물은 현재 위치보다 양 옆이 더 높을 때 고이므로 )
  2. 왼쪽에서 가장 큰 높이와
    오른쪽에서 가장 큰 높이 중 작은 값( m )을 찾아서,
  • 현재 높이보다 그 작은 값이 크다면( m )
    answer에 m - 현재높이를 더해준다.
  1. answer를 출력하면 끝!

👌🏻코드

h, w = map(int, input().split())
world = list(map(int, input().split()))

ans = 0

for i in range(1, w - 1):
    left_max = max(world[:i])
    right_max = max(world[i+1:])
    
    m = min(left_max, right_max)
    if world[i] < m:
        ans += m - world[i]
        
print(ans)

0개의 댓글