티스토리 뷰
스택 (Stack) 이란?
스택은 쌓다라는 의미로, 데이터를 차곡차곡 쌓아 올린 형태의 자료구조이다.
데이터가 순서대로 쌓이며, 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 구조를 가지고 있다.
가장 대표적인 예시로는 프링글스 과자를 생각하면 된다.
스택은 정해진 방향으로만 쌓을 수 있으며, top으로 정한 곳을 통해서만 접근 할 수 있다.
새로 삽입 되는 자료는 top이 가리키는 가장 맨 위에 쌓이게 되며, 자료를 삭제할 때도 top을 통해서 삭제가 가능하다.
여기서 삽입연산을 Push, 삭제 연산을 Pop 라고 하며 이러한 스택 구조를 후입 선출(LIFO - Last In First Out) 구조라고 한다.
스택(stack)의 사용 사례
- 웹 브라우저 방문 기록(뒤로가기)
- 실행 취소(undo)
- 역순 문자열 만들기
- 후위 표기법 계산
큐 (Queue) 란?
큐는 스택과 다르게 먼저 들어온 것이 먼저 나가는 선입선출(FIFO - First In First Out)의 구조를 가지고 있다.
예시로 카페에서 먼저와 주문한 손님이 음료를 먼저 받고 나가는 것을 생각하면 된다.
삭제 연산이 수행되는 곳을 프론트(front), 삽입 연산이 이루어지는 곳은 리어(rear)로 FIFO 구조를 위해 스택과 다르게 큐의 한쪽 끝에는 삽입작업이, 다른 한쪽 끝에서는 삭제 작업이 나뉘어서 이루어진다.
이때 리어(rear) 에서 이루어지는 삽입 연산을 인큐(Enqueue)라고 하며, 프론트(front)에서 이루어지는 삭제 연산을 디큐(Dequeue) 라고 한다.
큐(Queue)의 사용 사례
- 은행 업무
- 대기열 순서와 같은 우선순위의 작업 예약
- 서비스 센터의 대기시간
- 프로세스 관리
'Tech Interview > 기술 면접 준비' 카테고리의 다른 글
[Backend 개발자 면접 준비] List 와 Set 차이 (0) | 2023.08.14 |
---|---|
[Backend 개발자 면접 준비] Redis 란? (0) | 2023.08.11 |
[Backend 개발자 면접 준비] 소프트웨어 개발 프로세스 모델 6가지 (0) | 2023.08.09 |
[Backend 개발자 면접 준비] 소프트웨어 개발 단계 (Software Life Cycle) (0) | 2023.08.08 |
[Backend 개발자 면접 준비] 배열(Array) 과 연결리스트(Linked List) (0) | 2023.08.07 |
- Total
- Today
- Yesterday
- java
- 알고리즘 공부
- 코딩테스트공부
- 개발자 면접 준비
- 백엔드 개발자
- 제로베이스 백준 장학금
- 기술 면접 준비
- 프로그래머스
- 프로그래머스 자바
- 제로베이스 백엔드 스쿨
- 코테 준비
- 백엔드 개발자 기술 면접 준비
- 코딩테스트 준비
- 취업 준비
- 코딩테스트 공부
- 알고리즘
- 백준
- 코테공부
- 코딩테스트
- 코테준비
- 개발자 취준
- 백엔드 개발자 취업 준비
- 자바공부
- 알고리즘공부
- 주니어 개발자 취업 준비
- 취준
- 취업준비
- 개발자 취업 준비
- 프로그래머스 카카오
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |