[C++] 다이나믹 프로그래밍 - AI 개념 정리

·
coding test - C++/기본기문제
DP(Dynamic Programming) 핵심 정리DP는 이전에 계산한 결과를 저장해두고, 다음 계산에서 재사용하는 방식이다.핵심은 코드를 외우는 게 아니라 먼저dp[i]가 무슨 뜻인지 정의하는 것이다.1. DP 문제 풀이 순서DP 문제를 보면 이 순서로 생각한다.① dp[i]가 무엇을 의미하는가?② 현재 상태에서 어떤 선택이 가능한가?③ 그 선택을 이전/다음 dp와 어떻게 연결하는가?④ 최대값인가? → max 최소값인가? → min 경우의 수인가? → +⑤ 어떤 값이 먼저 계산되어 있어야 하는가? → 반복 방향 결정⑥ 초기값 설정예를 들어:dp[i] = i일까지 얻을 수 있는 최대 수익이라고 정의했다면,오늘 일을 한다오늘 일을 안 한다두 경우를 비교해서:dp[i] = max(한다, 안 한다..