Stack

알파로그·2023년 3월 14일
0

알고리즘 스킬

목록 보기
18/19

사전적 의미로는 쌓다, 더미 라는 뜻을 갖고 있는 Stack 은

상자에 물건을 쌓아 넣듯이 data 를 쌓는 구조라고 할 수 있다.

  • Stack 의 특징은 가장 먼저 넣은 값이 가장 나중에 나온다는 것이다.
    • LIFO (Last In First Out) 구조

📍 스택을 사용하면 좋은 알고리즘

  • 우선 탐색
  • 백트래킹 종류

✏️ Stack 사용하기

📍Stack 용어

  • top : 인덱스 삽입과 삭제가 일어나는 위치
  • push : top 위치에 새로운 data 를 삽입하는 연산
  • pop : top 데이터를 삭제하고, 확인하는 연산
  • peek : top 위치의 데이터를 조회하는 연산

📍 Stack 선언

다른 제네릭을 사용하는 Collection 과 선언 방법이 동일하다.

Stack<String> stack = new Stack<>();

📍 Stack 값 추가

  • push(…)
stack.push(1);
stack.push(2);
stack.push(3);

📍 Stack 값 삭제

  • pop()
  • clear()
stack.push(1);
stack.push(2);
stack.push(3);
stack.pop() // 마지막에 추가한 index 3 이 삭제 된다.
stack.clear() // stack 의 모든 index 가 삭제된다.

📍 Stack 값 출력

  • peek()
stack.push(1);
stack.push(2);
stack.push(3);
stack.peek();  // 마지막에 추가한 index 3 이 출력 된다.

📍 기타 method

  • size()
    • stack 의 크기를 반환
  • stack.empty()
    • 스텍이 비어있는지 확인
    • 값이 비어있다면 True / 값이 있다면 false
  • stack.contains(…)
    • stack 에 특정 index 가 포함되어있는지 확인
    • 값이 있다면 True / 값이 없다면 false
profile
잘못된 내용 PR 환영

0개의 댓글