동적 프로그래밍은 다른 알고리즘 패러다임 중 하나입니다. 이 접근 방식에서 문제는 몇 가지 하위 문제로 나눌 수 있으며 미래에 사용하기 위해 이전 하위 문제의 출력을 저장합니다. 작업의 계산 시간을 줄이는 데 도움이 됩니다.
동적 프로그래밍 기법에는 두 가지 유형이 있습니다. -
- 중복 하위 문제
- 최적의 하부 구조
이 섹션에서 다룰 내용 -
- 박스 쌓기 문제
- 두 번의 순회를 사용하여 그리드에서 최대 포인트 수집
- 1부터 n까지의 모든 숫자의 자릿수 합 계산
- 연속 1이 없는 이진 문자열 계산
- 게임에서 주어진 점수에 도달하는 방법의 수 계산
- 건물을 건설할 수 있는 가능한 방법 계산
- n't 계단에 도달하는 방법 계산
- 거리 수정
- 달걀 던지기 퍼즐
- 숫자의 합이 값과 같은 숫자 찾기
- 목적지에 도달하기 위한 최소 비용
- 플로이드-워셜 알고리즘
- 피보나치 수열 생성
- 4개의 키가 있는 'A'의 최대 수
- 가장 큰 독립 집합 문제
- 최대 합 연속 하위 배열
- 가장 긴 Bitonic 하위 시퀀스
- 가장 긴 공통 부분수열
- 주어진 시작 문자에서 가장 긴 연속 경로
- 최장 증가 부분 수열
- 가장 긴 회문 부분 시퀀스 길이
- 가장 긴 회문 부분 문자열
- 행렬 사슬 곱셈
- 페어 체인의 최대 길이
- 주식을 두 번 매매한 후 최대 이익
- 모두 1인 최대 크기의 정사각형 부분행렬
- 최대 합 증가 부분 수열
- 매트릭스에 있는 직사각형의 최대 합
- 매트릭스에서 최소 비용 경로 찾기
- 다각형 삼각 측량의 최소 비용
- 목적지에 도달하기 위한 최소 토큰
- 최소 코인 변경 문제
- 가능한 최소 점프 수
- 값에 도달하기 위한 최소 완전제곱수의 합
- 모바일 숫자 키패드 문제
- 숫자를 세 번 깨는 최대 합계
- 최적 BST 비용
- 친구 페어링 문제
- 와일드카드 패턴 일치 문제
- 회문 분할 알고리즘
- 동일한 집합의 분할 가능성 확인
- 로드 절단 문제
- 최단 공통 수퍼 시퀀스
- 부분집합 문제
- N자리 값의 감소하지 않는 총 숫자
- 못생긴 숫자
- 꼭지점 덮음 문제
- 가중 작업 스케줄링 문제
- 단어 줄바꿈 문제