height[0] = -1

height[N+1] = 0 으로 두고


st 는 들어온 블럭의 index 값을 저장하고

st2는 해당 블럭의 넓이 계산이 시작되어야 하는 x값입니다.

블록을 하나씩 받았을 때

st의 top보다 현재 들어온 블럭이 높다면 스택에 바로 넣고

낮다면 이전 스택을 현재 블럭보다 낮은게 나올때 까지 빼면서 넓이를 계산해줍니다.

이 과정에서 현재 스택에 들어있는 블럭중 자기보다 높은 블럭을 계속 빼면서 넓이를 계산하게 되고

마지막으로 뺀 블럭이 현재 높이의 블럭의 계산이 시작될 x 지점이 됩니다.


여러가지 해봐도 음... 뭘까요ㅠㅠ

indioindio   9달 전

뉴라인을 붙여서 출력했더니 정답이 되네요.

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

감사합니다!!!!

댓글을 작성하려면 로그인해야 합니다.