본문 바로가기

stack

(2)
Algorithm/LeetCode LeetCode #232 - Implement Queue using Stacks(스택을 이용한 큐 구현) 풀이 문제 2개의 스택만을 사용하여 FIFO 큐를 구현하여야 하는 문제이다. 구현된 큐는 일반 큐의 모든 기능(push, pop, empty)를 지원하여야 하며 구현해야 하는 MyQueue 클래스는 다음과 같다. push(x: int) -> void : x를 큐의 맨 뒤에 넣는다. pop() -> int : 큐의 가장 앞에 있는 요소를 삭제하고 반환한다. peek() -> int : 큐의 맨 앞에 있는 요소를 반환한다. empty() -> boolean : 큐가 비어있으면 true, 그렇지 않으면 false를 반환한다. 이때, 아래 사항을 참고하여야 한다. 스택의 기본 연산(push to top, peek or pop from top, size 및 is empty)만 사용하여야 한다. 언어에 따라서는 스택이 ..
Algorithm/개념정리 자료 구조(Data Structure)의 스택(Stack) 개념 정리 들어가며 알고리즘 문제를 풀 때 리스트(이하, 배열)로는 해결하기 어려운 경우가 있으며, 이와 같은 상황에서는 스택이나 큐를 사용해야 한다. 따라서, 이번에는 스택에 대해서 공부한 내용을 정리해보았다. 스택 스택(stack)은 '마룬 풀을 쌓은 더미', '겹겹이 쌓음'을 뜻하는 단어로, 데이터가 쌓인 데이터 집합이라고 할 수 있다. 이는 데이터를 임시 저장할 때 사용하는 자료구조이며, 후입선출(LIFO, Last In First Out) 방식으로 데이터를 입/출력할 수 있다. 즉, 데이터를 맨 위에서부터 쌓고, 맨 위에서부터 꺼낸다는 의미이며, 이를 각각 푸쉬(push), 팝(pop)이라고 한다. 예를 들어, 푸쉬와 팝을 간단히 나타내면 다음과 같다. stack : [] 1. push(1) → stack..