C++ 스택 및 큐 컨테이너 어댑터 분석과 커스텀 구현

컨테이너 어댑터의 개념 C++ 표준 템플릿 라이브러리 (STL) 에서 스택 (stack) 과 큐 (queue) 는 독립적인 데이터 구조라기보다는 기존 컨테이너를 래핑하여 특정 접근 규칙을 강제하는 컨테이너 어댑터로 분류됩니다. 이들은 내부적으로 다른 컨테이너를 저장소로 활용하며, 사용자에게는 제한된 인터페이스만을 노출합니다. 스택 (Stack) 어댑터 동작 원리 및 정의 스택 ...

8월 5일 19:11에 게시됨

C++ 컨테이너 어댑터: stack, queue 및 priority_queue의 이해와 구현

1. stack의 특징과 활용 C++ STL의 stack은 LIFO(Last-In-First-Out, 후입선출) 원칙을 따르는 컨테이너 어댑터입니다. 데이터의 삽입과 삭제가 한쪽 끝(Top)에서만 이루어지는 구조를 가집니다. 1.1 stack의 주요 인터페이스 함수 설명 push(val) 스택의 맨 위에 데이터를 추가 pop() 스택의 ...

8월 5일 00:44에 게시됨

Java 큐 인터페이스와 주요 구현체 분석

Queue 인터페이스의 기본 개념 Queue는 FIFO(First In, First Out) 원칙을 따르는 자료구조로, Collection 인터페이스를 확장하여 요소의 순차적 처리가 필요한 상황에서 사용된다. 대표적인 활용 예로는 작업 스케줄링, 버퍼 관리, 이벤트 처리 등이 있다. public interface Queue<E> extends Collection<E> {} FIFO 동작 방식 가장 먼저 추가된 요소가 가 ...

7월 28일 02:01에 게시됨

C언어를 이용한 큐(Queue) 자료구조의 구현과 이해

큐(Queue)의 핵심 개념 큐는 선입선출(FIFO, First In First Out) 원칙을 따르는 선형 자료구조입니다. 가장 먼저 삽입된 데이터가 가장 먼저 제거되는 구조로, 일상생활의 대기 줄과 유사한 메커니즘을 가집니다. 운영체제의 프로세스 스케줄링, 네트워크 패킷 처리, 너비 우선 탐색(BFS) 등 다양한 알고리즘과 시스템 설계에서 필수적으로 사용됩니다. 주요 용어 및 동 ...

7월 27일 17:08에 게시됨

C++ 스택과 큐 관련 알고리즘 문제 풀이

문제 1: 최소값 스택push, pop, top 연산을 지원하면서도 상수 시간 내에 최소 요소를 검색할 수 있는 스택을 설계하세요.MinStack 클래스를 구현해야 합니다:MinStack(): 스택 객체 초기화void push(int val): 요소를 스택에 삽입void pop(): 스택 상단 요소 삭제int top(): 스택 상단 요소 반환int getMin(): 스택의 최소 요소 반환, 시간 복잡도 O(1)풀이思路두 개의 스 ...

7월 18일 02:27에 게시됨

Java 기초 학습 10 - 알고리즘

큐 구조 기초 큐는 선입선출(FIFO) 구조를 가진 자료구조입니다. 배열을 이용하여 큐를 구현할 수 있으며, 기본 구현과 원형 큐(Circular Queue) 방식으로 나뉩니다. 기본 배열 큐(비최적화) 필요 변수: front = -1, rear = -1, maxSize, int[] arr 큐가 가득 찬 조건: rear == maxSize - 1, 큐가 빈 조건: rear == front 삽입(enqueue): 큐가 가득 찼는지 확인 후, rear ...

7월 10일 06:31에 게시됨

대규모 데이터 엑셀 다운로드 시 서버 부하 방지를 위한 큐 기반 처리 최적화

최근 서비스 내 수십만 건 이상의 데이터를 일괄 다운로드하는 기능에 대한 요구가 증가하고 있으며, 특히 여러 사용자가 동시에 엑셀 추출을 요청할 경우 서버 리소스 과부하로 인한 장애 위험이 존재합니다. 이는 DB 조회 I/O와 파일 스트림 생성이라는 두 가지 무거운 작업이 병행되기 때문입니다. 이를 해결하기 위해 동시 처리량을 제어하고, 요청을 순차적으로 ...

6월 28일 23:10에 게시됨

큐를 사용하여 스택 구현: LeetCode 225 풀이

문제 정의 두 개의 큐를 활용하여 후입선출(LIFO) 방식의 스택을 구현해야 합니다. push, top, pop, empty 네 가지 기본 연산을 지원해야 하며, 큐의 기본 기능인 push to back, peek/pop from front, size 및 is empty만 사용할 수 있습니다. 해결 방법 1: 단일 큐 사용 스택의 마지막 요소를 큐의 맨 앞에서 제거해야 하는 점이 어려움입니다. 이는 큐의 끝 요소를 제 ...

6월 27일 17:07에 게시됨

너비 우선 탐색(BFS)으로 Flood Fill 유형 문제 풀이

너비 우선 탐색(BFS)은 그래프나 그리드에서 최단 경로를 찾거나 연결된 구성 요소를 탐색하는 데 자주 사용되는 강력한 알고리즘입니다. Flood Fill 알고리즘은 특정 시작점에서 인접한 모든 요소들을 탐색하여 변경하는 과정으로, BFS의 대표적인 응용 사례 중 하나입니다. 이 글에서는 BFS를 활용하여 Flood Fill 계열의 문제들을 해결하는 방법을 다룹니다. 1. 이미지 ...

6월 23일 03:44에 게시됨

Python에서의 멀티태스킹: 프로세스 기반 병렬 처리

프로세스와 프로그램의 차이점 프로그램은 단순히 소스 코드 파일(예: main.py)과 같이 저장된 정적 상태를 의미합니다. 반면, 프로세스는 해당 프로그램이 실행되어 운영체제에 의해 메모리 상에 로드되고, 코드와 자원을 활용해 동작하는 동적인 인스턴스입니다. 프로세스는 시스템 자원 할당의 기본 단위이며, 각 프로세스는 독립적인 메모리 공간을 가집니다. multipr ...

6월 22일 01:45에 게시됨