Algorithm/boj

[파이썬] 6549 히스토그램에서 가장 큰 직사각형

takeU 2022. 6. 21. 14:39
반응형
while True:
    graph = list(map(int, input().split())) + [0]
    n, graph = graph[0], graph[1:]
    if n == 0:
        break
    left, ans = 0, 0
    stack = [(0, graph[0])]
    for right in range(1, len(graph)):
        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)

스택