일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- iOS14
- UI한글변경
- 구조체와 클래스의 공통점 및 차이점
- vscode
- 매크로
- 입출력 패턴
- correlation coefficient
- Django란
- scanf
- k-eta
- getline
- 입/출력
- c++
- Django Nodejs 차이점
- 백준
- string 메소드
- EOF
- double ended queue
- string 함수
- 엑셀
- 표준 입출력
- 연결요소
- 장고란
- 시간복잡도
- 이분그래프
- 2557
- Django의 편의성
- 프레임워크와 라이브러리의 차이
- 알고리즘 공부방법
- 자료구조
Archives
- Today
- Total
Storage Gonie
다이나믹 단원 폼 본문
반응형
ㅇㅇㅇ 문제
-
문제요약
해결 방법
1. D[N] 에 어떤 값을 저장할 것인지 문장으로 정의해줘야 한다.
- D[N] = "N개를 모두 구매하며 지불할 수 있는 최대 금액"
2. D[N]의 값을 어떻게하면 찾을 수 있을지 점화식을 생각한다.
- 정수 N이 주어지고, 앞에 어떤 조합이 존재하고 마지막 조합에서 아래와 같은 방법 중 1가지를 선택할 수 있다.
3. 다이나믹 프로그래밍 방법을 적용할 수 있는 문제인지 확인 => 1, 2번을 거쳐야 이게 잘 보임.
- 위와 같이 큰 문제를 작은 문제로 쪼갤 수 있으며, 작은 문제도 큰 문제와 같은 방법으로 풀 수 있고, 작은 문제들이 겹친다.
(Overlapping SubProblem)
- 문제의 정답을 작은 문제의 정답으로부터 구할 수 있으며, 문제의 크기에 상관없이 어떤 한 문제의 정답은 일정하다.
(Optimal Substructure)
4. 코드구현
<Top-down 방식>
(1) 구현
-> '재귀호출' 방식으로 구현
(2)시간복잡도
= 배열에 채워 넣어야하는 값의수 x 1칸을 채우는 복잡도
<Bottom-up 방식>
(1) 구현
-> 'for문을 이용한 반복문'으로 구현
(2) 시간복잡도
= for 문의 반복 횟수
반응형
'알고리즘 > Baek Joon' 카테고리의 다른 글
문제 유형별 해결 Tip (0) | 2019.05.09 |
---|---|
백준문제 틀렸다고 뜨는 경우 (0) | 2019.05.07 |
솔루션 기본 틀 (0) | 2019.04.18 |
Comments