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에 게시됨

LeetCode Weekly Contest 90 알고리즘 문제 풀이

1. Buddy Strings (친밀한 문자열) 두 개의 문자열 s와 goal이 주어졌을 때, s의 두 문자를 단 한 번 교체하여 goal과 동일하게 만들 수 있는지 확인하는 문제입니다. 풀이 전략: 두 문자열의 길이가 다르면 절대 같아질 수 없으므로 false를 반환합니다. 두 문자열이 이미 같다면, 문자열 내에 중복된 문자가 하나라도 있어야 교체 후에도 동일함을 유지할 수 있 ...

7월 30일 20:15에 게시됨

LeetCode 20: 유효한 괄호 - 왜 이웃한 두 문자에만 의존할 수 없는가

이 문제는 LeetCode 20번, 유효한 괄호에 관한 것입니다. 주어진 문자열은 다음 여섯 가지 문자만 포함합니다: ( ) [ ] { } 이 문자열이 "유효한지" 판단해야 합니다. 유효하다는 것은 다음을 의미합니다: 왼쪽 괄호는 같은 타입의 오른쪽 괄호로 닫혀야 합니다. 왼쪽 괄호는 올바른 순서로 닫혀야 합니다. 모든 오른쪽 괄호에 ...

7월 23일 02:31에 게시됨

C++ STL 컨테이너 어댑터: 스택, 큐, 우선순위 큐의 이해와 구현

1. 컨테이너 어댑터(Container Adapter)의 개념 C++ STL에서 스택(Stack), 큐(Queue), 우선순위 큐(Priority Queue)는 독립적인 자료구조라기보다 기존 컨테이너의 인터페이스를 제한하거나 변형하여 특정 목적에 맞게 재설계한 컨테이너 어댑터로 분류됩니다. 이들은 내부적으로 데이터를 저장하기 위해 vector, list, deque와 같은 표준 시퀀스 컨테이너를 사용합니다. ...

7월 20일 19:32에 게시됨

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

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

7월 18일 02:27에 게시됨

C++ 메모리 할당 영역별 특징과 static 키워드 활용법

C++의 메모리 할당 영역 C++에서 프로그램이 실행될 때 데이터는 목적과 수명에 따라 다양한 메모리 영역에 할당됩니다. 각 영역의 특성을 이해하는 것은 효율적이고 안전한 코드를 작성하는 데 필수적입니다. 1. 스택(Stack) 스택은 컴파일러가 자동으로 관리하는 영역입니다. 함수 호출 시 생성되는 지역 변수, 매개변수, 반환 주소 등이 여기에 저장됩니다. 프로세스의 ...

7월 15일 22:38에 게시됨

스택 자료구조 완벽 가이드

스택은 한쪽 끝에서만 데이터의 삽입과 삭제가 가능한 선형 자료구조로, LIFO(Last In First Out) 구조를 따른다. 함수 호출 관리, 괄호 검사, 수식 계산 등 다양한 영역에서 핵심적인 역할을 수행한다.스택의 핵심 특성스택은 상단(top)과 하단(bottom)으로 구분되는 단일 접근점을 가진다. 모든 데이터 입출력은 상단에서만 발생하며, 이 특성으로 인해 데이터의 역순 처 ...

7월 2일 17:00에 게시됨

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

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

6월 27일 17:07에 게시됨

Java에서 스택을 활용한 효율적인 데이터 처리와 계산 기법

스택의 개념과 Java에서의 구현 방식 스택(Stack)은 후입선출(LIFO: Last In, First Out) 원칙에 따라 동작하는 자료구조로, 데이터의 추가와 제거가 한쪽 끝에서만 이루어진다. 이 구조는 함수 호출 관리, 수식 계산, 문법 분석 등 다양한 소프트웨어 설계 영역에서 핵심적인 역할을 한다. Java에서는 java.util.Stack 클래스를 통해 기본적인 스택 기능을 제공하지만, ...

6월 12일 22:58에 게시됨