동적 계획법을 이용한 최댓값 및 경우의 수 문제 해결
동적 계획법(Dynamic Programming)은 복잡한 문제를 더 작은 하위 문제로 나누어 해결하는 강력한 기법입니다. 특히 최댓값이나 경우의 수를 구하는 문제에서 효율적입니다. 다음은 동적 계획법을 활용하여 두 가지 유형의 문제를 해결하는 방법입니다.
1. 최댓값 문제: 중복 문자가 없는 가장 긴 부분 문자열
문제 설명: 주어진 문자열에서 중복 문자가 없는 가장 긴 부 ...
8월 16일 02:39에 게시됨
스택 기반 배열 구현과 단조 창문 알고리즘
-1은 빈 리스트를 의미
head는 머리 노드의 인덱스
e[]는 특정 위치의 값, 인덱스는 노드의 위치
ne[]는 다음 포인터
idx는 현재까지 사용된 노드의 인덱스
단일 연결 리스트
단일 연결 리스트에서 idx는 삽입된 순서가 아니라, 현재까지 할당된 노드 번호를 나타냄
#include <iostream>
using namespace std;
const int N = 100010;
int head, e[N], ne[N], idx ...
7월 17일 02:57에 게시됨
데이터 구조에서 맵과 세트 (하)
이전 글에서 다루지 못한 기술적 개념을 찾으세요:
**개인 홈페이지:**我要学编程(ಥ_ಥ)-CSDN 블로그
소속 전문: 데이터 구조 (Java 버전)
이전 글에서는 이진 탐색 트리, 맵과 세트의 기본 개념, 해시 테이블의 충돌 해결 방식 등을 다뤘습니다. 데이터 구조에서 맵과 세트 (상) - CSDN 블로그
이제 나머지 주제를 살펴보겠습니다.
목차
충돌 해결 - 클로즈드 해싱
충돌 ...
6월 20일 01:11에 게시됨
HashMap 내부 구조와 작동 원리
데이터 구조
1.7 버전
배열과 연결 리스트의 조합으로, 키-값 쌍은 Entry 내부 클래스 배열에 저장됩니다. 키로부터 계산된 해시값이 배열의 인덱스가 됩니다. 이를 버킷 배열이라고 부르며, 해시 충돌이 발생할 경우 Entry 클래스의 내부 멤버 변수 Entry<k,v> next;를 통해 연결 리스트를 형성합니다. 해시값이 동일한 요소들은 머리 삽입법(head insertion)을 ...
6월 3일 17:20에 게시됨