JavaScript/알고리즘

알고리즘 스터디 - Stack

반응형

이번시간에는 Stack에 대해서 알아보도록 하겠다.

 

  STACK

우리가 흔히 게임을 하다보면

 

" 스택을 쌓아야 더 강해진다 "

" 스택 쌓아야된다 "

" 스택 쌓였다 "

라는 식의 대화를 한 적 있을것이다.

 

이 말에서 힌트를 얻고, 스택은 무언가를 쌓는다고 할 수 있다.

 

자, 그럼 스택이 무엇인지 대충 알았을테니 제대로 시작해보자.

 

  LIFO

Last Input First Out 의 약자인 LIFO 이다.

스택 알고리즘은 나중에 들어온것을 먼저 빼주는 방식으로 동작을 한다.

이 것을 보았을 때 아래와같은 이미지로 동작이 된다.

https://en.wikipedia.org/wiki/Stack_(abstract_data_type)

 

  Function

이번 알고리즘에서는 아래와 같은 함수를 구현해 보겠다.

  • push - 마지막 인덱스에 값을 추가한다
  • pop - 마지막 인덱스의 값을 삭제하고 반환한다.
  • peek - 마지막 인덱스의 값을 삭제하지 않고 반환한다.
  • empty - 스택이 비어있는지 확인하고 상황에 맞는 true / false 를 반환한다
  • search - 스택 내부에서 값을 검색 후 상황에 맞는 true / false 를 반환한다

 


 

정말 간단하면서도 중요하다고 생각하는 부분이 바로 이 STACK이다.

꼭 완벽히 습득하고 넘어가면 좋을거같다는 생각이 든다.

 

여러 언어로 이 stack을 구현해보고 댓글로 자신의 코드를 공유하면 좋을것 같다.

 

 

반응형