PS
BOJ 1725 (스택)
plr3270
2021. 11. 14. 21:19
발상을 배웠다고 생각해야겠다
소스코드
n = int(input())
ls = []
for i in range(n):
ls.append(int(input()))
ls.append(0)
maxS = 0
stack = []
for i in range(n+1):
if len(stack) == 0 or ls[stack[-1]] < ls[i]:
stack.append(i)
else:
while len(stack) != 0 and ls[stack[-1]] >= ls[i]:
a = stack.pop()
maxS = max(maxS, ls[a]*(i if len(stack) == 0 else i-stack[-1]-1))
stack.append(i)
print(maxS)