효율적인 알고리즘 활용: 슬라이딩 윈도우 최댓값과 상위 K개 빈도 요소 찾기
알고리즘 문제 해결 과정에서 흔히 마주치는 두 가지 유형의 문제, 즉 슬라이딩 윈도우 내의 최댓값을 찾는 문제와 데이터셋에서 빈도수가 높은 상위 K개의 요소를 추출하는 문제에 대해 다룹니다. 각 문제에 대한 효과적인 해결 전략과 함께 C++ 구현 예시를 제시합니다.
슬라이딩 윈도우 최댓값 (LeetCode 239번)
주어진 정수 배열 nums와 정수 k가 있을 때, 크기 k의 ...
9월 2일 02:08에 게시됨
C++ 스택과 큐 자료구조: 역폴란드 표기법 계산 및 슬라이딩 윈도우 최댓값
스택과 큐의 기본 개념
C++에서 std::stack과 std::queue는 컨테이너 자체가 아니라 컨테이너 어댑터(container adapter)이다. 이들은 std::deque를 기본 구현체로 사용하며, 반복자(iterator)를 제공하지 않아 요소를 순회할 수 없다.
역폴란드 표기법(후위 표기법) 계산
후위 표기법은 연산자를 피연산자 뒤에 배치하는 방식이다. 스택을 활용해 토큰을 순차적으로 처리 ...
8월 23일 12:24에 게시됨
Python의 collections 모듈 심층 분석
collections 모듈은 파이썬 내장 컨테이너 타입을 확장한 다양한 자료구조를 제공합니다. 각각의 특징과 활용법을 자세히 알아보겠습니다.
1. namedtuple: 이름 있는 튜플
namedtuple은 일반 튜플의 고정된 구조를 유지하면서도 각 요소에 이름을 부여하여 가독성과 접근성을 높입니다.
from collections import namedtuple
# 2D 좌표계 예시
Coordinate = namedtuple('C ...
7월 4일 22:15에 게시됨
Java에서 스택을 활용한 효율적인 데이터 처리와 계산 기법
스택의 개념과 Java에서의 구현 방식
스택(Stack)은 후입선출(LIFO: Last In, First Out) 원칙에 따라 동작하는 자료구조로, 데이터의 추가와 제거가 한쪽 끝에서만 이루어진다. 이 구조는 함수 호출 관리, 수식 계산, 문법 분석 등 다양한 소프트웨어 설계 영역에서 핵심적인 역할을 한다.
Java에서는 java.util.Stack 클래스를 통해 기본적인 스택 기능을 제공하지만, ...
6월 12일 22:58에 게시됨
Java ArrayDeque 클래스 완벽 가이드
ArrayDeque 개요
ArrayDeque는 双端큐(Double-Ended Queue)의 구현체로, 내부적으로 배열을 사용하여 데이터를 저장합니다. 내부 배열은 환형(cyclic) 구조로 동작하여 효율적인 메모리 활용이 가능합니다.
상속 구조
ArrayDeque 클래스는 Deque 인터페이스를 구현합니다. Deque 인터페이스는 양쪽 끝에서 자유롭게 데이터를 추가하고 제거할 수 있는 연산을 제공합니다.
D ...
5월 20일 15:30에 게시됨