[코테 스터디] 스택

한별·2025년 9월 13일

코딩테스트

목록 보기
3/12
post-thumbnail

스택(Array)이란 말 그대로 데이터를 '쌓아 올리는' 자료 구조입니다.

스택

위 그림은 스택을 그림으로 나타낸 것입니다. 스택은 먼저 들어간 것이 마지막에 나온다는 특징이 있습니다. 이 규칙을 후입선출, LIFO(Last In First Out)라고 부릅니다.

사용하는 이유

마지막에 저장한 데이터를 가장 먼저 꺼내는 후입선출(LIFO, Last In First Out) 구조를 통해 데이터를 효율적으로 관리하기 위해 사용합니다. 브라우저의 '뒤로가기'는 스택(Stack) 자료구조의 LIFO(Last-In, First-Out, 후입선출) 원리를 활용하여 가장 마지막에 방문한 페이지를 먼저 보여주는 기능입니다. 뒤로가기 버튼 클릭 시 현재 페이지는 '다음' 스택에, 이전 페이지는 '뒤로' 스택에서 가져와 화면에 표시합니다.


스택 관련 ADT (추상 자료형)

  1. push → 스택의 최상단(top)에 데이터를 넣음
  2. pop → 최상단(top)의 데이터를 제거하고, 그 데이터를 반환
  3. isFull → 가득 차 있다면 true, 아니면 false
  4. isEmpty → 데이터가 하나라도 있다면 false, 없다면 true
  5. top → 최근 삽입한 데이터의 위치를 저장할 변수

스택은 인터페이스(설계도)만 있고 구현은 되어 있지 않습니다.
JS에서는 스택은 없지만, 배열의 push, pop() 함수를 이용해서 배열을 스택처럼 사용할 수 있습니다.


스택 구현

const stack = [];

function push(stack, item) {
  stack.push(item);
  console.log("데이터가 추가되었습니다.");
}

function pop(stack) {
  if (stack.length === 0) {
    console.log("스택이 비어 있습니다.");
    return null;
  } else return stack.pop();
}

자바스크립트에서 배열은 동적으로 크기가 변하므로 maxSize, isFull()는 구현할 필요가 없으며, isEmpty()는 stack.length === 0으로 대체 가능합니다.

pop() 함수에서 빈 스택일 때만 주의하면 됩니다!

profile
글 잘 쓰고 싶어요

0개의 댓글