IT - Introduction to Computer Science

[IT지식] Stack(스택)이란?

개발자하소서 2023. 8. 30. 16:30
728x90
반응형
SMALL

📌 Stack(스택)이란?

 

Stack(스택)은  아래와 같이 두 가지 특징을 지닌다.

 

-  LIFO (Last In First Out)

: 가장 나중에 넣은 것이 가장 먼저 나오는 것 

-  FILO(First In Last Out)

:  가장 먼저 넣은 것이 가장 나중에 나오는 것 

 

그리고, Stack에는 집어 넣거나 뺄때의 용도가 따로 존재하는데,

 

집어넣는 경우 Push 라는 용어를 사용하며, 

 

뺄 경우 Pop이라는 용어를 사용한다. 

 

 

stack 기능은 실생활에서  문서 작업을 할 때 흔히 볼 수 있는데

 

바로,  Ctrl + Z 기능이다. 

 

이 기능은 문서를 작성 또는 편집 중 잘못하거나 실수했을 경우 

 

이전의 상태로 되돌리고자 할 때 사용하는 기능이다. 

 

이것을 Stack으로 구현해 보자면 

 

한 stack을 두고,

 

알파벳 a, b, c, d를 각각층에 입력해 놓았다.

 

근데 여기서 만약 d를 입력한 것을 취소시켜야 할 것 같아서

 

Ctrl + z를 누르게 된다면 어떻게 될까?

 

가장 최근에 실행했던 d를  stack에서 꺼내 취소가 될 것이고, 

 

그렇게 취소를 시키는 순간 이제 d는 사라지게 되고 

 

당연히 stack에서도 사라지게 된다. 

 

그리고 원래 우리가 실제로 입력했어야 했던 값이 

 

만약 z라고 쳐서, 다시 z를 입력한다면 

 

다시 stack의 가장 상위 부분에 z를 입력하면 될 것이다. 

 

이런 식으로 Ctrl  + Z 도  stack을 통해 구현할 수 있다는 것을 생각해 볼 수 있다.

 

이렇게 stack의 큰 특징에 대해 살펴 보았다.

 

 

.

📌해당 글은 '쉬운코드' 유튜브영상을 보고 작성하였습니다.

https://youtu.be/ELEoJHiqlF4?si=j_0cZmfR41IDlEI2 

 

728x90
반응형
LIST