Stack - Min/Max stack

JeongChaeJin·2022년 11월 11일
0

Max Stack

  • Reference
  • Stack의 기능 top, push_back, pop_back 뿐만 아니라 max 값을 찾아서 주는 기능도 추가하는 문제다.

Algorithm

[ 1 3 3 2 2 5 1 ]
  • 위와 같은 Input이 Stack에 들어간다고 해보자.
  • 이는 max기능의 Time Complexity를 O(1)로 만들기 위해 Space Complexity를 조금 손해본다. 두 개의 Stack을 만드는 것이다. 하나는 원래 Stack 기능, 하나는 Max를 위한 Stack 이다.
StackMax (elem, count)
11,1
33,1
33,2
23,2
23,2
55,1
15,1
  • Max Stack은 반복되는 지점은 그냥 push 안한다고 보면된다. 즉, 들어오는 원소가 기존 원래 있떤 원소보다 크면 Update, 같으면 개수를 Update 해준다.
  • Max 기능을 요청하면 Max Stack의 top을 사용하여 O(1)로 max 값을 제공할 수 있다.
profile
OnePunchLotto

0개의 댓글