동적 계획법을 이용한 최댓값 및 경우의 수 문제 해결

동적 계획법(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에 게시됨