스택(4)
-
[자료구조] 덱(Deque) 개념 및 코드
오늘은 자료구조 중 하나인 덱(Deque)에 대해 알아보겠습니다. 덱은 스택, 큐와 아주 유사한 자료구조이며, 스택/큐의 단점을 보완하고 장점을 가져왔기 때문에 유용하게 쓰입니다. 목차 📃 덱(Deque) 개념 📃 덱(Deque) 코드 📃 덱(Deque) 예제 덱(Deque) 개념 📌 정의 덱은 스택/큐와 같은 일차원의 선형 자료구조입니다. 스택과 큐 연산을 모두 지원하기에, 양 끝에서 삽입과 삭제가 가능한 자료구조입니다. 내부가 double-linked list(양방향 연결 리스트)로 구현되어 있습니다. 📌 시간 복잡도 O(1) 양방향 연결 리스트로 구현되어 있어, 양 끝 요소의 추가/삭제가 O(1)를 만족합니다. 그에 반해 List는 고정된 사이즈의 메모리를 갖는 배열로, 첫 번째 요소를 삭제하면 모..
2022.07.12 -
[CS지식] 메모리 구조에 대하여
메모리의 구조 프로그램이 실행되기 위해선 메모리에 로드되어야 합니다. 또한 프로그램의 변수들이 메모리에 저장되어야 합니다. 이에 운영체제들은 여러 메모리 영역들을 제공하고 있습니다. 프로그램은 4가지 대표적인 메모리를 할당받아서 실행됩니다. 1. 코드 영역 2. 데이터 영역 3. 힙 영역 4. 스택 영역 1. 코드 영역 코드 영역은 말 그대로 프로그램의 코드를 저장하는 곳이다. Text 영역이라고도 불립니다. CPU는 코드 영역에 있는 명령어를 하나씩 가져와서 처리합니다. 2. 데이터 영역 프로그램의 전역 변수(global variable), 정적 변수(static variable)가 저장되는 영역입니다. 프로그램의 시작과 함께 할당되며, 프로그램이 종료하면 소멸됩니다. * 전역 변수: 프로그램 내 어느..
2022.06.12 -
[BOJ] #10828번 스택
import sys N = int(sys.stdin.readline()) class stacking: def __init__(self): self.top = [] def push(self, a): return self.top.append(a) def pop(self): if not self.top: return print(-1) else: pop_object = self.top.pop() return print(pop_object) def size(self): return print(len(self.top)) def empty(self): if len(self.top) > 0: return print(0) else: return print(1) def ttop(self): if not self.top: ..
2022.04.25 -
[자료구조] 스택(Stack) 개념 및 코드 구현
자료구조 중 하나인 스택(Stack)에 대해 알아보고, 직접 코드로 구현해보자. 배열 구현과 연결 리스트 구현 모두 해볼 것이다. 들어가자. 스택(Stack) 개념 가장 나중에 넣은 데이터를 가장 먼저 빼내는 데이터 구조. LIFO(Last In First Out) 방식. 스택의 가장 위 요소를 Top이라 한다. 활용 재귀적으로 함수를 호출해야 하는 작업에서, 임시 데이터를 스택에 쌓아두고 이전 단계로 돌아갈 때 데이터를 다시 꺼내오는 등으로 쓰인다. 기능 1. push() : 스택의 원소를 추가한다. 2. top() : 스택의 가장 위 원소를 가져온다. 3. pop() : 스택의 가장 위 원소를 뽑아낸다. 4. isEmpty() : 스택의 empty 여부를 확인한다. 스택(Stack) 구현 배열 구현 ..
2022.04.24