본문 바로가기
알고리즘/자료구조

스택 <stack> 이란? (STL 사용법)

by 지칸 2021. 3. 8.

안녕하세요. 지칸입니다.

삼성전자 역량 테스트에 자주 등장하는 자료구조로 스택을 소개하겠습니다.

역량 테스트에서 STL이 사용 가능하기 때문에 C++ 사용자분들은 라이브러리를 사용하시면 간편하게 이용할 수 있습니다.

 

 

1) Stack이란?

2) c++ STL 사용 예제

3) STL Stack 함수

 

저의 결론) c/c++ 유저라면 c++로 STL를 사용하자! c++로 코딩했지만 코딩 수준상 사실 c랑 다를 것 없다.

배열을 사용하거나 배열로 stack를 구현할 필요도 없고 구현하다 생기는 휴먼에러 또한 막을 수 있습니다.

 

삼성 SW 역량테스트에서 자주 사용할만한 자료구조는 아래와 같습니다.

2021.03.08 - [알고리즘/자료구조] - 스택 이란? (STL 사용법)

2021.03.09 - [알고리즘/자료구조] - 큐 란? (STL 사용법)

2021.03.09 - [알고리즘/자료구조] - 벡터 란? (STL 사용법)

2021.03.12 - [알고리즘/자료구조] - 페어(Pair) 란? (STL 사용법)


1) Stack이란?
Stack은 아래와 같이 LIFO(Last In First Out) 방식의 데이터 저장소입니다.

Stack 구조, 마지막으로 들어론 데이터가 가장 먼저 나감

 

우리는 Push, Pop 동작만으로 데이터 저장/삭제가 가능하며 STL 라이브러리를 사용하여 구현도 할 필요가 없습니다.

현재 데이터의 크기 및 비어있는지 확인도 함수 호출 하나로 확인이 가능합니다.

이 Stack를 사용하여 DFS 알고리즘을 손쉽게 구현할 수 있습니다.

DFS 알고리즘은 한 갈림길에서 한 방향으로 끝까지 가본 후 되돌아온뒤 나머지 다른 길을 가는 컨셉을 가지고 있기 때문에 되돌아오는 과정을 이 Stack를 사용하여 간단하게 구현할 수 있습니다.


2) c++ STL 사용 예제

예제를 보여드리면 아래와 같습니다.

stack <int> 형으로 변수를 생성했습니다.

우리는 이 변수의 사이즈를 배열처럼 고민할 필요가 없습니다.

데이터를 push/pop를 반복하면서 배열 사이즈를 고민할 필요가 없다는 건 관리에 매우 용이합니다.

Pop을 통해 LIFO를 확인해 볼 수 있습니다.


3) STL Stack 함수

자주 사용하는 함수는 아래와 같습니다.

함수 이름 함수 설명
push(element) element를 맨 위에 추가
pop() top element를 삭제
empty() stack이 비어있는지 확인
top() 최상위 element를 반환
size() stack의 사이즈

 

 

반응형

'알고리즘 > 자료구조' 카테고리의 다른 글

페어(Pair) 란? (STL 사용법)  (0) 2021.03.12
벡터 <vector> 란? (STL 사용법)  (0) 2021.03.09
큐 <queue>란? (STL 사용법)  (0) 2021.03.09

댓글