Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Autolayout
- coordinator
- 삽입정렬
- IOS
- swift
- Content Compression Resistance priority
- 버블정렬
- 오토레이아웃
- Content Hugging priority
- mvvm
- 동시성프로그래밍
- OperationQueue
- RxCocoa
- ai expo
- Union-Find
- GCD
- 동작과정
- ReactiveX
- 병합정렬
- 자료구조
- 백준
- LLM
- 알고리즘
- RX
- 선택정렬
- swift알고리즘
- endpoint
- RxSwift요약
- rxswift
- uikit
Archives
- Today
- Total
JosephCha의 개발일지
동적 계획법(DP) 본문
반응형
정의
- 입력 크기가 작은 부분 문제들을 해결한 후, 해당 부분의 답을 이용해, 전체 크기의 문제를 해결하는 알고리즘
- 상향식 접근법
- Memoization 기법: 프로그램 실행 시, 이전에 계산한 값을 저장하여, 다시 계산하지 않도록 하여 전체 실행 속도를 빠르게 하는 기술
피보나치 수열
피보나치 수열 문제
- 재귀함수 활용
// recursive
func fibo(_ num: Int) -> Int {
if num <= 1 {
return num
}
return fibo(num - 1) + fibo(num - 2)
}
- 동적 계획법 활용
// 동적 계획법
func fiboDP(num: Int) -> Int {
var caches = [Int].init(repeating: 0, count: num + 1)
caches[0] = 0
caches[1] = 1
for index in 2...num {
caches[index] = caches[index-1] + caches[index - 2]
}
return caches[num]
}
출처 : 패스트 캠퍼스 알고리즘 / 기술면접 완전 정복 올인원 패키지 Online.
Comments