Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- ?. ?? ! late
- sqld 시험 정리
- 작업 2유형
- my_sql
- 앱개발 가보자고
- null check 연산자
- flutter 믹스인
- MySQL
- SQL
- 빅분기 필기
- 주말도 식지않아
- mysql mongo 성능 비교
- 빅분기
- 주말에도 1일 1쿼리
- FLUTTER
- 컴포지션과 집합
- 빅분기 캐글놀이터
- 빅분기 판다스 100제
- 빅분기 필기 pdf
- rdbms nosql 차이
- 주말도 한다
- late 키워드
- 모델 학습 및 예측
- 빅데이터 분석기사
- null 억제 연산자
- 1일 1쿼리
- 작업 1유형
- 오늘은 1일 2쿼리
- 빅분기 1유형
- null safety
Archives
- Today
- Total
subindev 님의 블로그
#3. 스택과 큐 본문
1. 스택(Stack)
스택은 후입선출(Last In First Out, LIFO) 방식의 자료구조입니다. 나중에 들어온 데이터가 먼저 나가는 구조로, 접시를 쌓거나 되돌리기(Undo) 기능 등을 구현할 때 자주 사용됩니다.
스택의 특징
- LIFO 구조: 나중에 들어온 데이터가 먼저 나갑니다.
- 기본 연산:
- push: 데이터를 스택에 추가
- pop: 가장 마지막에 추가된 데이터를 제거 및 반환
- peek or top: 삭제 없이 가장 위에 있는 데이터를 조회
- 일반적으로 배열(Array)이나 연결 리스트(Linked List)를 이용해 구현할 수 있습니다.
스택의 시간 복잡도
연산시간 복잡도
push | O(1) |
pop | O(1) |
peek | O(1) |
스택의 활용 예시
- 웹 브라우저의 뒤로 가기(Back) 기능
- 괄호 검사, 수식 계산 (후위 표기법)
- DFS(깊이 우선 탐색) 구현
- 함수 호출 시의 콜 스택(Call Stack)
2. 큐(Queue)
큐는 선입선출(First In First Out, FIFO) 방식의 자료구조입니다. 먼저 들어온 데이터가 먼저 나가는 구조로, 줄 서기, 작업 예약 시스템 등에서 사용됩니다.
큐의 특징
- FIFO 구조: 먼저 들어온 데이터가 먼저 나갑니다.
- 기본 연산:
- enqueue: 데이터를 큐에 추가
- dequeue: 가장 앞에 있는 데이터를 제거 및 반환
- peek or front: 삭제 없이 가장 앞의 데이터를 조회
- 배열 또는 연결 리스트로 구현 가능하며, 성능을 위해 원형 큐(Circular Queue)도 사용됩니다.
📊 큐의 시간 복잡도
연산시간 복잡도
enqueue | O(1) |
dequeue | O(1) |
peek/front | O(1) |
큐의 활용 예시
- 은행의 대기열, 프린터 대기열
- BFS(너비 우선 탐색) 알고리즘
- 캐시(Cache)에서의 FIFO 교체 정책
3. 스택 vs 큐
항목스택(Stack)큐(Queue)
구조 | 후입선출 (LIFO) | 선입선출 (FIFO) |
주요 연산 | push, pop, peek | enqueue, dequeue, peek |
접근 방식 | 마지막 요소에 접근 | 첫 번째 요소에 접근 |
사용 예시 | 웹 뒤로가기, DFS | BFS, 대기열, 프로세스 관리 |
'cs 지식 > 자료구조 및 알고리즘' 카테고리의 다른 글
#4 트리와 이진 탐색 트리 (0) | 2025.07.11 |
---|---|
#4 트리와 이진 탐색 트리 (0) | 2025.01.21 |
#2 배열과 리스트 (0) | 2025.01.13 |
#1. 자료구조의 기초 (0) | 2025.01.13 |
#0 - 개발자는 왜 자료구조와 알고리즘을 배워야할까? (0) | 2025.01.13 |