Algorithm/boj

[파이썬] 1725 히스토그램

takeU 2022. 6. 20. 12:45
반응형
import sys
input = sys.stdin.readline

n = int(input())
graph = [int(input()) for _ in range(n)] + [0]
left, ans = 0, 0
stack = [(0, graph[0])]
for right in range(1, n + 1):
    left = right
    while stack and stack[-1][1] > graph[right]:
        left, height = stack.pop()
        ans = max(ans, height * (right - left))
    stack.append((left, graph[right]))

print(ans)

스택