[백준 12846번] 무서운

N,data = int(input()),(*map(int,input().split()))+(0)
histogram,result = (),0
for i in range(N+1):
  j = i
  while histogram and histogram(-1)(0)>=data(i):
    h,j = histogram.pop()
    result = max(result,h*(i-j))
  histogram.append((data(i),j))
print(result)

히스토그램에서 가장 큰 직사각형(백준 #6549) 히스토그램에서 가장 큰 직사각형(Python3)(tistory.com)도 똑같은 문제입니다.

데이터에 0을 추가하여 기존 코드에서 사소한 코드 개선이 이루어졌습니다.