📌 https://www.acmicpc.net/problem/14501
✅실버 III
14501번: 퇴사
첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.
www.acmicpc.net
📌문제


🖋 예제입력 1 🖋 예제출력 1 🖋 예제입력 2 🖋 예제출력 2
7 45 10 55
3 10 1 1
5 20 1 2
1 10 1 3
1 20 1 4
2 15 1 5
4 40 1 6
2 200 1 7
1 8
1 9
1 10
🖋 예제입력 3 🖋 예제출력 3 🖋 예제입력 4 🖋 예제출력 4
10 20 10 90
5 10 5 50
5 9 4 40
5 8 3 30
5 7 2 20
5 6 1 10
5 10 1 10
5 9 2 20
5 8 3 30
5 7 4 40
5 6 5 50
💻 수정 전 코드
예제의 결과값은 다 나왔지만 틀렸다.
if List[check-1][1] < List[check][1] and i < check: #현재 일하는 것보다 그 뒤에가 더 클 경우
아마도 이 부분에서 에러가 나는 것 같다.
💻 수정 후 코드

📖 참고
◾ Dynamic Programming( DP, 동적 계획법)
복잡한 문제를 여러개의 소문제로 분할하여 각 소문제의 해결안을 바탕으로 주어진 문제를 해결하는 방법
ex) 피보나치 수열
▪ 사용조건
- 최적 부분 구조(Optimal Substructure)
- 겹치는 부분 문제(Overlapping Subproblems)
▪ 적용 방식
- Top - Down → 재귀함수 이용하여 구현
- Bottom - Up → 반복문을 이용하여 구현
◾ Memoization (저장)
- 동일 계산 반복 시 이전 계산값을 메모리에 저장하여 실행속도를 빠르게 함
→ 불필요한 연산을 줄여줌!!
🎈알고리즘 분류
- 다이나믹 프로그래밍
- 브루트포스 알고리즘
'Coding > DP(다이나믹 프로그래밍)' 카테고리의 다른 글
| 📁백준 14494 다이나믹이 뭐예요?- Python (1) | 2024.06.13 |
|---|