누적 합(Prefix Sum) 알고리즘은 배열의 부분 합을 빠르게 계산하기 위한 유용한 도구입니다. 이는 특히 여러 번의 부분 합 계산이 필요한 상황에서 매우 효율적입니다. 이 글에서는 누적 합의 개념, 기본적인 구현 방법, 그리고 이를 활용한 문제 해결 방법에 대해 자세히 설명하겠습니다. 누적 합(Prefix Sum)란❓누적 합은 주어진 배열의 각 원소까지의 합을 저장한 배열입니다. 수열 An에 대해서 구간[1, 1]의 합, 구간[1, 2]의 합, 구간[1, 3]의 합,..., [1, n]의 합을 누적 합이라고 합니다. 예를 들어, 배열 arr가 주어졌을 때, prefixSum[i]는 arr [0]부터 arr [i-1]까지의 합을 의미합니다. 예를 들어, i = 3일 때 prefixSum[3] ➡..
자바를 활용하다 보면 데이터를 먼저 들어온 순서대로 처리해야 하는 상황과 함께 데이터를 양쪽 끝에서 효율적으로 추가하거나 삭제해야 하는 경우가 있습니다. 이때 사용할 수 있는 것이 덱(Deque)입니다. 이번 포스팅에서는 덱(Deque)에 대해서 알아보겠습니다. Deque 덱이란 ❓ 덱(Deque)은 자바에서 제공하는 자료구조 중 하나로, 양 끝에서 삽입과 삭제가 모두 가능한 더블 엔드 큐(Double Ended Queue)의 줄임말의선형 자료구조입니다. 큐(Queue)에서는 FIFO(First-In-First-Out) 방식으로 동작스택(Stack)에서는 LIFO(Last-In-First-Out) 방식으로 동작 덱은 큐(Queue)와 스택(Stack)의 특징을 모두 가지고 있어서 양쪽 끝에서 빠르게 데..
그래프는 많은 컴퓨터 과학 문제에서 필수적인 데이터 구조입니다. 그래프를 사용하면 복잡한 네트워크 구조를 모델링하고 다양한 문제를 해결할 수 있습니다. 예를 들어, SNS에서 친구 관계를 나타내거나, 도로망에서 최단 경로를 찾는 문제 등을 해결할 수 있습니다. Graph란 ❓Graph는 객체 또는 개체 간의 관계를 표현하는 자료구조입니다. 객체(Node)들 간의 연결(Egde)로 구성됩니다. Graph의 정의그래프는 두 가지 주요 구성 요소로 이루어집니다. 노드(정점, Vertex)그래프에서 개별적인 객체 또는 노드를 나타냅니다.간선(엣지,Edge)노드 간의 연결을 나타내며, 노드 간의 관계를 정의합니다.그래프는 노드와 간선의 집합으로 표현되며 다음과 같이 표현됩니다.G = (V,E)G : Grap..
자바를 활용하다 보면 중복되지 않는 유일한 값을 저장하고 관리해야 할 때가 있습니다. 이럴 때 사용할 수 있는 클래스가 HashSet입니다. HashSet은 고유한 요소들을 저장하는 데 최적화된 컬렉션 클래스입니다. 이번 글에서는 HashSet의 선언 방식, 장단점, 주요 메서드, 사용 예제 등을 자세히 알아보겠습니다. Hash란 ❓HashSet을 제대로 이해하기 위해서는 해시(Hash) 개념을 아는 것이 매우 중요합니다. 해시는 컴퓨터 과학에서 데이터 관리와 검색을 효율적으로 하기 위해 사용되는 중요한 개념입니다. 즉 임의의 길이를 갖는 데이터를 고정된 길이의 데이터로 변환(매핑)하는 과정 이때 사용되는 함수가 해시 함수(Hash Function)입니다. 해시 함수는 입력 데이터를 받아, 고정된 ..