stack 3

[자료구조] (5) Deque(덱)이란 무엇인가?

Deque(덱) 정의Deque(Double-Ended Queue)는 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조다.스택(한쪽 입출력), 큐(한쪽 입력/한쪽 출력)과 다르게 덱은 양쪽 모두 입출력이 가능하다.덱의 주요 연산addFirst(item)앞쪽에 데이터 삽입addLast(item)뒤쪽에 데이터 삽입removeFirst()앞쪽 데이터 삭제removeLast()뒤쪽 데이터 삭제peekFirst()앞쪽 데이터 조회peekLast()뒤쪽 데이터 조회덱의 구현 방법배열 기반(ArrayDeque)빠른 인덱스 접근 가능공간이 꽉 차면 크기 확장(리사이즈) 필요연결 리스트 기반(LinkedListDeque)삽입/삭제가 O(1)로 빠름메모리 사용량이 많음 (노드 구조)덱의 사용 사례회문(팰린드롬) 검사앞과 뒤를..

자료구조 2025.04.27

[자료구조] (4) Stack 두 개로 Queue 구현하기

2개의 Stack으로 Queue 구현해보기큐는 FIFO(First In, First Out) 방식으로 작동하는 대표적인 자료구조다. 반면 스택은 LIFO(Last In, First Out) 구조다. 얼핏 보면 정반대의 구조처럼 보이지만, 두 개의 스택을 적절히 조합하면 큐와 같은 동작을 흉내 낼 수 있다. Stack이란?스택은 데이터를 "쌓는" 방식으로 관리하는 자료구조다. 가장 마지막에 들어온 데이터가 가장 먼저 나가는 LIFO(Last In, First Out) 구조로 작동한다. 마치 책을 한 권씩 쌓아 올리고, 맨 위에 있는 책부터 꺼내는 방식과 같다. → 연산스택에서 지원하는 기본 연산은 다음과 같다.push(item) : 스택의 맨 위에 데이터를 추가한다.pop() : 스택의 맨 위 데이터를 제..

자료구조 2025.04.25

[백엔드 면접 질문 준비] (5) 프로세스와 스레드의 차이는 무엇인가요?

프로그램 → 프로세스 → 스레드 : 실행 단위의 흐름프로그램 : 아직 실행되지 않은 정적인 파일 (예: .exe, .jar 등)프로세스 : 프로그램이 실행되어 운영체제로부터 자원을 할당받은 단위스레드 : 프로세스가 할당받은 자원을 사용하여 실제로 작업을 수행하는 실행 흐름의 단위코드 덩어리인 프로그램이 실행되면 프로세스가 되고, 그 안에서 작업을 수행하는 흐름이 스레드입니다. 프로세스(Process)란?실행 중인 프로그램으로, OS로부터 독립된 메모리 공간을 할당받음각 프로세스는 Code, Data, Heap, Stack 등의 메모리 공간을 독립적으로 가짐하나의 프로세스는 다른 프로세스에 직접 접근할 수 없음 (보안상 격리됨)예시: 크롬과 카카오톡을 동시에 실행하면 각각 독립적인 프로세스입니다.스레드(T..

Interview Question 2025.04.04