SlideShare a Scribd company logo
1 of 10
Download to read offline
컴퓨터 공학 스터디 W1 자료구조와 알고리즘
동적 계획법 Dynamic Programming
컴퓨터 공학 스터디 W1 자료구조와 알고리즘
동적 계획법 1
피보나치 수열 Fibonacci numbers
• 제2항까지는 1, 제3항부터는 바로 앞의 두 수를 더한 수
(0), 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89…
재귀를 이용해 피보나치 수열의 n번째 수를 구하는 함수
int fib(int n)
{
if (n<=2)
return 1;
else
return fibo(n-1) + fibo(n-2);
}
컴퓨터 공학 스터디 W1 자료구조와 알고리즘
동적 계획법 2
피보나치 수열 Fibonacci numbers
• fibo(6)
fibo(2) fibo(1)
fibo(3) fibo(2)
fibo(4)
fibo(2) fibo(1)
fibo(3)
fibo(5)
fibo(2) fibo(1)
fibo(3) fibo(2)
fibo(4)
fibo(6)
컴퓨터 공학 스터디 W1 자료구조와 알고리즘
동적 계획법 2
피보나치 수열 Fibonacci numbers
• fibo(6)
fibo(2) fibo(1)
fibo(3) fibo(2)
fibo(4)
fibo(2) fibo(1)
fibo(3)
fibo(5)
fibo(2) fibo(1)
fibo(3) fibo(2)
fibo(4)
fibo(6)
컴퓨터 공학 스터디 W1 자료구조와 알고리즘
동적 계획법 2
피보나치 수열 Fibonacci numbers
• fibo(6)
fibo(2) fibo(1)
fibo(3) fibo(2)
fibo(4)
fibo(2) fibo(1)
fibo(3)
fibo(5)
fibo(2) fibo(1)
fibo(3) fibo(2)
fibo(4)
fibo(6)
컴퓨터 공학 스터디 W1 자료구조와 알고리즘
동적 계획법 2
피보나치 수열 Fibonacci numbers
• fibo(6)
fibo(2) fibo(1)
fibo(3) fibo(2)
fibo(4)
fibo(2) fibo(1)
fibo(3)
fibo(5)
fibo(2) fibo(1)
fibo(3) fibo(2)
fibo(4)
fibo(6)
fibo(3), fibo(4) 연산이 반복된다
컴퓨터 공학 스터디 W1 자료구조와 알고리즘
동적 계획법 3
동적 계획법의 등장
• 처음 진행되는 연산은 기록, 진행되었던 연산은 기록된 값을 이용해 연산 횟수를 줄인다.
메모이제이션(Memoization)
int fiboData[100] = {0,};
int fibo(int n)
{
if (n<=2)
return 1;
if (fiboData[n]==0)
fiboData[n] = fibo(n-1) + fibo(n-2);
return fiboData[n];
}
DP를 이용해 피보나치 수열의 n번째 수를 구하는 함수
컴퓨터 공학 스터디 W1 자료구조와 알고리즘
동적 계획법 4
개념
•문제를 풀기 위해 한 문제를 여러 개의 하위 문제로 나누어 푼 다음, 그것들을 결합하여 최종적인 목적에
도달한다.
•하위 문제를 해결한 뒤 그 해결책을 저장하여 똑같은 문제 발생 시 간단하게 해결한다.
A B
1
2
3
모든 방법을 검토한 후 가장 짧은 2번을 선택한다
컴퓨터 공학 스터디 W1 자료구조와 알고리즘
동적 계획법 5
장점과 단점
•모든 방법을 일일이 검토하여 최적의 해를 찾아내는 방식
•그리디 알고리즘(탐욕 알고리즘)
•모든 해를 구하지 않고 순간순간 최적의 해를 찾는 방식
•그리디 알고리즘으로 도출된 값이 항상 최적의 해라고는 할 수 없다
•동적 계획법은 그리디 알고리즘에 비해 시간이 오래 걸리나, 결과적으로 항상 효율적인 값을 구할 수 있다.
컴퓨터 공학 스터디 W1 자료구조와 알고리즘
동적 계획법 6
Q&A

More Related Content

What's hot

Articulation
ArticulationArticulation
Articulation
mel12589
 
Head and neck anat fin
Head and neck anat finHead and neck anat fin
Head and neck anat fin
Emiru Tilahun
 
Musculature Of The Head And Neck
Musculature Of The Head And NeckMusculature Of The Head And Neck
Musculature Of The Head And Neck
Doc Lorie B
 

What's hot (20)

Suboccipital region and muscles of back
Suboccipital region and muscles of backSuboccipital region and muscles of back
Suboccipital region and muscles of back
 
Articulation
ArticulationArticulation
Articulation
 
Anterior tooth
Anterior toothAnterior tooth
Anterior tooth
 
Musculos de la cabeza
Musculos de la cabeza Musculos de la cabeza
Musculos de la cabeza
 
Posterior triangle of neck
Posterior triangle of neck Posterior triangle of neck
Posterior triangle of neck
 
Muscles of mastication[part 1]/ oral surgery courses  
Muscles of mastication[part 1]/ oral surgery courses  Muscles of mastication[part 1]/ oral surgery courses  
Muscles of mastication[part 1]/ oral surgery courses  
 
larynx
larynxlarynx
larynx
 
mandibular premolars.pptx
mandibular premolars.pptxmandibular premolars.pptx
mandibular premolars.pptx
 
Upper Limb
Upper LimbUpper Limb
Upper Limb
 
Course 2016 MANDIBLE MUSCLES OF MASTICATION AND TEMPOROMANDIBULAR JOINT new ...
Course 2016 MANDIBLE MUSCLES OF MASTICATIONANDTEMPOROMANDIBULAR JOINT new ...Course 2016 MANDIBLE MUSCLES OF MASTICATIONANDTEMPOROMANDIBULAR JOINT new ...
Course 2016 MANDIBLE MUSCLES OF MASTICATION AND TEMPOROMANDIBULAR JOINT new ...
 
Triangles of Neck.pptx
Triangles of Neck.pptxTriangles of Neck.pptx
Triangles of Neck.pptx
 
Temporal bone
Temporal boneTemporal bone
Temporal bone
 
skeleton on head + bony features of norma verticalis + skull cap 2018
skeleton on head + bony features of norma verticalis + skull cap 2018skeleton on head + bony features of norma verticalis + skull cap 2018
skeleton on head + bony features of norma verticalis + skull cap 2018
 
Palatine bone
Palatine bonePalatine bone
Palatine bone
 
Head and neck
Head and neckHead and neck
Head and neck
 
Lymphatic drainage
Lymphatic drainageLymphatic drainage
Lymphatic drainage
 
Head and neck anat fin
Head and neck anat finHead and neck anat fin
Head and neck anat fin
 
blood supply nerve supply of face
blood supply nerve supply of faceblood supply nerve supply of face
blood supply nerve supply of face
 
Musculature Of The Head And Neck
Musculature Of The Head And NeckMusculature Of The Head And Neck
Musculature Of The Head And Neck
 
Anatomy Muskuloskeletal Pectoral Girdle & Upper Limb
Anatomy Muskuloskeletal Pectoral Girdle & Upper LimbAnatomy Muskuloskeletal Pectoral Girdle & Upper Limb
Anatomy Muskuloskeletal Pectoral Girdle & Upper Limb
 

Similar to 동적 계획법 Dynamic Programming

프리젠테이션-제목없음
프리젠테이션-제목없음프리젠테이션-제목없음
프리젠테이션-제목없음
suitzero
 
3장 자동적으로 움직이는 게임 에이전트 생성법
3장 자동적으로 움직이는 게임 에이전트 생성법3장 자동적으로 움직이는 게임 에이전트 생성법
3장 자동적으로 움직이는 게임 에이전트 생성법
suitzero
 
생각하는 프로그래밍 1부
생각하는 프로그래밍 1부생각하는 프로그래밍 1부
생각하는 프로그래밍 1부
sj k
 

Similar to 동적 계획법 Dynamic Programming (11)

피보나치 수열과 파이썬.pptx
피보나치 수열과 파이썬.pptx피보나치 수열과 파이썬.pptx
피보나치 수열과 파이썬.pptx
 
프리젠테이션-제목없음
프리젠테이션-제목없음프리젠테이션-제목없음
프리젠테이션-제목없음
 
3장 자동적으로 움직이는 게임 에이전트 생성법
3장 자동적으로 움직이는 게임 에이전트 생성법3장 자동적으로 움직이는 게임 에이전트 생성법
3장 자동적으로 움직이는 게임 에이전트 생성법
 
컴퓨터개론09
컴퓨터개론09컴퓨터개론09
컴퓨터개론09
 
IPython
IPythonIPython
IPython
 
03. dp easy
03. dp easy03. dp easy
03. dp easy
 
생각하는 프로그래밍 1부
생각하는 프로그래밍 1부생각하는 프로그래밍 1부
생각하는 프로그래밍 1부
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조
 
알고리즘 연합캠프 세미나 1-C (알고리즘 설계와 모델링 및 수학)
알고리즘 연합캠프 세미나 1-C (알고리즘 설계와 모델링 및 수학)알고리즘 연합캠프 세미나 1-C (알고리즘 설계와 모델링 및 수학)
알고리즘 연합캠프 세미나 1-C (알고리즘 설계와 모델링 및 수학)
 
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
 
자바로 Mnist 구현하고_스프링웹서버붙이기
자바로 Mnist 구현하고_스프링웹서버붙이기자바로 Mnist 구현하고_스프링웹서버붙이기
자바로 Mnist 구현하고_스프링웹서버붙이기
 

동적 계획법 Dynamic Programming

  • 1. 컴퓨터 공학 스터디 W1 자료구조와 알고리즘 동적 계획법 Dynamic Programming
  • 2. 컴퓨터 공학 스터디 W1 자료구조와 알고리즘 동적 계획법 1 피보나치 수열 Fibonacci numbers • 제2항까지는 1, 제3항부터는 바로 앞의 두 수를 더한 수 (0), 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89… 재귀를 이용해 피보나치 수열의 n번째 수를 구하는 함수 int fib(int n) { if (n<=2) return 1; else return fibo(n-1) + fibo(n-2); }
  • 3. 컴퓨터 공학 스터디 W1 자료구조와 알고리즘 동적 계획법 2 피보나치 수열 Fibonacci numbers • fibo(6) fibo(2) fibo(1) fibo(3) fibo(2) fibo(4) fibo(2) fibo(1) fibo(3) fibo(5) fibo(2) fibo(1) fibo(3) fibo(2) fibo(4) fibo(6)
  • 4. 컴퓨터 공학 스터디 W1 자료구조와 알고리즘 동적 계획법 2 피보나치 수열 Fibonacci numbers • fibo(6) fibo(2) fibo(1) fibo(3) fibo(2) fibo(4) fibo(2) fibo(1) fibo(3) fibo(5) fibo(2) fibo(1) fibo(3) fibo(2) fibo(4) fibo(6)
  • 5. 컴퓨터 공학 스터디 W1 자료구조와 알고리즘 동적 계획법 2 피보나치 수열 Fibonacci numbers • fibo(6) fibo(2) fibo(1) fibo(3) fibo(2) fibo(4) fibo(2) fibo(1) fibo(3) fibo(5) fibo(2) fibo(1) fibo(3) fibo(2) fibo(4) fibo(6)
  • 6. 컴퓨터 공학 스터디 W1 자료구조와 알고리즘 동적 계획법 2 피보나치 수열 Fibonacci numbers • fibo(6) fibo(2) fibo(1) fibo(3) fibo(2) fibo(4) fibo(2) fibo(1) fibo(3) fibo(5) fibo(2) fibo(1) fibo(3) fibo(2) fibo(4) fibo(6) fibo(3), fibo(4) 연산이 반복된다
  • 7. 컴퓨터 공학 스터디 W1 자료구조와 알고리즘 동적 계획법 3 동적 계획법의 등장 • 처음 진행되는 연산은 기록, 진행되었던 연산은 기록된 값을 이용해 연산 횟수를 줄인다. 메모이제이션(Memoization) int fiboData[100] = {0,}; int fibo(int n) { if (n<=2) return 1; if (fiboData[n]==0) fiboData[n] = fibo(n-1) + fibo(n-2); return fiboData[n]; } DP를 이용해 피보나치 수열의 n번째 수를 구하는 함수
  • 8. 컴퓨터 공학 스터디 W1 자료구조와 알고리즘 동적 계획법 4 개념 •문제를 풀기 위해 한 문제를 여러 개의 하위 문제로 나누어 푼 다음, 그것들을 결합하여 최종적인 목적에 도달한다. •하위 문제를 해결한 뒤 그 해결책을 저장하여 똑같은 문제 발생 시 간단하게 해결한다. A B 1 2 3 모든 방법을 검토한 후 가장 짧은 2번을 선택한다
  • 9. 컴퓨터 공학 스터디 W1 자료구조와 알고리즘 동적 계획법 5 장점과 단점 •모든 방법을 일일이 검토하여 최적의 해를 찾아내는 방식 •그리디 알고리즘(탐욕 알고리즘) •모든 해를 구하지 않고 순간순간 최적의 해를 찾는 방식 •그리디 알고리즘으로 도출된 값이 항상 최적의 해라고는 할 수 없다 •동적 계획법은 그리디 알고리즘에 비해 시간이 오래 걸리나, 결과적으로 항상 효율적인 값을 구할 수 있다.
  • 10. 컴퓨터 공학 스터디 W1 자료구조와 알고리즘 동적 계획법 6 Q&A