배열과 연결 리스트를 활용한 스택(Stack) 자료구조 구현 방식 분석
스택(Stack)의 기본 개념
스택은 선형 자료구조의 일종으로, 데이터의 삽입과 삭제 연산이 한쪽 끝에서만 이루어지는 제한된 형태의 리스트입니다. 이러한 특성 때문에 후입선출(LIFO, Last-In-First-Out) 원칙을 따릅니다. 데이터가 드나드는 유일한 통로를 스택의 상단(Top)이라 부르며, 가장 아래쪽을 하단(Bottom)이라고 합니다.
스택 인터페이스 설계
스택의 핵심 연 ...
9월 28일 14:09에 게시됨
C++ 스택과 큐 자료구조: 역폴란드 표기법 계산 및 슬라이딩 윈도우 최댓값
스택과 큐의 기본 개념
C++에서 std::stack과 std::queue는 컨테이너 자체가 아니라 컨테이너 어댑터(container adapter)이다. 이들은 std::deque를 기본 구현체로 사용하며, 반복자(iterator)를 제공하지 않아 요소를 순회할 수 없다.
역폴란드 표기법(후위 표기법) 계산
후위 표기법은 연산자를 피연산자 뒤에 배치하는 방식이다. 스택을 활용해 토큰을 순차적으로 처리 ...
8월 23일 12:24에 게시됨
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에 게시됨