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
- 문제 풀이
- 백준 1246번
- 한반도평화와공공외교
- CSS
- 백준 11050번
- 풍선터뜨리기
- 0의 개수
- 백준 14501번
- 연산자 문제
- 1141번
- 실버
- N과 M
- 알고리즘
- BTREE
- 1
- 풀이
- 해싱
- DP 알고리즘
- html
- 백준 1487번
- 이항계수
- B-tree
- 백준
- 파이썬
- 챗봇
- 가치규범의 공공외교
- 주창형 공공외교
- 해설
- hashing
- Python
Archives
- Today
- Total
SunFly의 코딩 및 정보 블로그
DP(Dynmic Programming) 알고리즘 본문
- DP. 즉 Dynamic Programming은 여러가지 알고리즘 문제들을 풀다보면 간간히 사용하는 경우가 많다.
- 핵심 내용은 이전에 계산한 값을 다음 실행에 써먹을 수 있고 이러한 계산들이 쌓여서 결과를 도출한다는 것이다.
- 한마디로 입력값이 이전 계산값이고 출력값이 현재 구하려는 값이다.
백준의 14501번 : 퇴사 문제를 예시로 들어서 보자.
이 문제는 삼성 역량 테스트 문제로도 나온 문제로 대기업 코테에서도 DP 관련 문제가 나올 수 있다는 것을 알아두자.
dp | 45(35+10) | 45 | 45(35+10) | 35(15+20) | 15 | 0 | 0 | 0 |
♦ 아이디어 방향
1. 그 전에 해당된 날짜의 이익, 상담하는 데에 걸리는 일수를 알고 있어야 다음을 진행할 수 있다.
2. 그 전 값을 기억하는 알고리즘 DP 알고리즘을 사용하여 문제를 푼다.
3. 이익의 최대를 생각하여야 하고 더한 일수가 주어진 최대 일수 n을 넘지 않아야 하므로 역으로 구한다.
이런 식으로 DP를 활용할 수 있다.
대부분 DP 문제들의 특징은 일정한 간격으로 떨어진 값들의 합 등의 결과값이나 정해진 범위에서 나열된 값들을 이용하여 푸는 문제들이 많다. 따라서 문제를 풀 때 내가 구하려는 결과의 식이 이전 결과를 계속 사용하여 풀어야 하는 문제라면 DP 알고리즘을 먼저 떠올려 보자.
'알고리즘' 카테고리의 다른 글
Hashing(해싱)이란?(Deletion) (0) | 2021.11.29 |
---|---|
Hashing(해싱) 이란?(Insertion) (0) | 2021.11.28 |
B+tree 삽입(Insertion) 알고리즘 - 3(Type-2 삽입) (0) | 2021.10.12 |
B+Tree 삽입(Insertion) 알고리즘 - 2 (Type-1 삽입) (0) | 2021.10.12 |
B+Tree 삽입(Insertion) 알고리즘 - 1 (0) | 2021.10.12 |