DP (Dynamic Programming)

2023. 11. 20. 21:30· 알고리즘/문제 유형
728x90

동적 프로그래밍 (Dynamic Programming)

: 여러 개의 하위 문제를 먼저 푼 후 그 결과를 쌓아올려 주어진 문제를 해결하는 알고리즘

 

목적

  • 수행 시간을 단축하고자 만든 알고리즘
  • 여러 개의 하위 문제를 먼저 푼 후 그 결과를 쌓아올려 주어진 문제를 해결하는 알고리즘
  • 메모리를 사용해서 중복 연산을 줄이고, 중복 연산을 줄여서 수행 속도 개선
    • 메모리 사용: 배열 또는 자료구조 생성
    • 중복 연산 줄임 : 한 번 연산한 결과를 배열에 저장

푸는 과정

  1. 테이블 정의하기
  2. 점화식 찾기
  3. 초기값 정하기

구현 방법

1. Memoization

  • 중복되는 계산은 한 번만 계산 후 메모
  • 하향식 접근 (Top-down), 재귀 기반 코드
  • 한 번 계산 후 저장해놓고, 저장해둔 결과를 꺼내서 사용하며 구현

2. Tabulation

  • 중복된는 것부터 푸는 방법
  • 상향식 접근 (Bottom-up), 반복문 기반 코드
  • 처음부터 테이블을 채워나간다는 식으로 계산하여 구현
728x90
저작자표시 (새창열림)

'알고리즘 > 문제 유형' 카테고리의 다른 글

백트래킹  (0) 2024.12.30
자바 알고리즘 입출력 정리 [Java]  (2) 2024.11.04
순열, 조합 파이썬으로 구현하기 (dfs)  (0) 2024.10.06
그리디(Greedy) 알고리즘  (0) 2024.03.22
BFS / DFS  (0) 2023.11.10
'알고리즘/문제 유형' 카테고리의 다른 글
  • 자바 알고리즘 입출력 정리 [Java]
  • 순열, 조합 파이썬으로 구현하기 (dfs)
  • 그리디(Greedy) 알고리즘
  • BFS / DFS
셰욘
셰욘
셰욘
seiyeon
셰욘
전체
오늘
어제
  • 분류 전체보기 (176)
    • 알고리즘 (46)
      • 프로그래머스 (2)
      • 백준 (37)
      • 문제 유형 (7)
    • CS (41)
      • Linux (6)
      • DB (15)
      • 자료구조 (3)
      • OOP (2)
      • 아키텍처 (0)
    • BE (42)
      • Java (9)
      • Spring Boot (32)
    • FE (6)
      • Next.js (1)
      • JavaScript (5)
      • Vue.js (7)
      • Web (0)
    • 배포 (5)
    • 회고 (19)
      • BEYOND SW 캠프 (19)
    • 기타 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그 관리

공지사항

인기 글

태그

  • 오블완
  • 백트래킹
  • dfs
  • fe
  • 실습
  • Gateway
  • 구현
  • 회고
  • bfs
  • 주간회고
  • spring boot
  • 백준
  • 리눅스
  • DP
  • vue
  • 그리디
  • 우선순위 큐
  • db
  • 네트워크
  • 알고리즘
  • 프로그래머스
  • web
  • 트리
  • js
  • Java
  • AWS
  • cs
  • 자료구조
  • 티스토리챌린지
  • be

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.v4.2.1
셰욘
DP (Dynamic Programming)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.