3주차 실력진단 결과는 697점으로 상승세를 유지하고 있다. 학습 진단 요약에 의하면 '그래프 탐색을 이용한 문제를 해결할 수 있지만 동적계획법 유형이 부족한 상황이에요' 라고 한다.
그래프 탐색을 아직 공부하지 못했는데 다른 유형이 부족하다고 하니, 계획을 수정해야 했다.
블로그 챌린지 기간동안에만 실력진단 결과에서 추천하는 커리큘럼을 따르겠다 결정했으니 이번 3주차는 DP유형을(넷플릭스 D.P. 아니고 DP 깔깔깔 🤣) 학습하기로 한다! 다만 NH 단계와 IL 단계 모두 DP와 그래프 탐색이 존재하는데, 보다 낮은 단계인 NH 먼저 학습해보자.
항상 점화식을 기반으로 한다. 어떤 풀이 방향을 선택하든 점화식을 구하는 것이 중요한 것 같다.
어느 유형이든 공통적이겠지만 특히 DP 유형은, 많은 DP 점화식을 경험해본 사람이 처음으로 맞닥뜨리는 사람보다 훨씬 유리하다고 생각이 든다.
풀이 방향
문제
타일채우기(2)
(링크 : https://www.codetree.ai/missions/6/problems/dp-modeling-tile2?&utm_source=clipboard&utm_medium=text)리뷰
타일채우기(2)
와 유사한 문제로 BST 개수
(이진탐색트리 개수) 문제가 있다.주어진 아이템을 적절히 골라, 목표로 하는 값에 도달할 수 있는 경우의 수를 찾는 유형이다. 대표적으로 배낭문제가 이 유형에 포함된다.
문제
은행
(링크 : https://www.codetree.ai/missions/6/problems/dp-modeling-bank?&utm_source=clipboard&utm_medium=text)리뷰
LCS 약자는 두 가지 의미(최장 공통 부분수 열, 최장 공통 부분 문자열)가 있을 수 있는데, 이번 유형은 최장 공통 부분 수열이다.
문제
표절 검사
(링크:https://www.codetree.ai/missions/6/problems/dp-lcs-2?&utm_source=clipboard&utm_medium=text)리뷰
max(LCS[i - 1][j], LCS[i][j - 1])
: 이전 비교과정에서 얻은 최적 결과를 그대로 유지LCS[i - 1][j - 1] + 1
(이미지출처:https://velog.io/@embeddedjune/알고리즘-이것이-코딩-테스트다-DP-Q36-편집-거리)