[항해99 취업 리부트 코스 학습일지] 다이나믹 프로그래밍

지혜·2024년 6월 15일
0

다이나믹 프로그래밍

다이나믹 프로그래밍(Dynamic Programming, DP)은 복잡한 문제를 더 간단한 하위 문제로 나누어 푸는 알고리즘 기법. 하위 문제의 답을 저장해두고 재사용하여, 동일한 하위 문제를 반복해서 풀지 않도록 함. 중복 계산이 많은 문제에서 사용

다이나믹 프로그래밍의 특징

하위 문제의 재사용: 문제를 더 작은 하위 문제로 나누고, 각 하위 문제의 답을 저장해요. 이를 통해 동일한 하위 문제를 다시 계산하지 않고도 답을 얻을 수 있음.

메모이제이션(Memoization): 계산한 하위 문제의 결과를 메모리에 저장하여 필요할 때마다 재사용하는 방식. (탑다운) 재귀를 사용하여 하위 문제를 해결하면서 결과를 저장.

탑다운(Top-Down)과 바텀업(Bottom-Up): 다이나믹 프로그래밍은 탑다운(재귀 + 메모이제이션)과 바텀업(반복문) 방식으로 구현할 수 있음. 바텀업 방식은 작은 하위 문제부터 차례대로 해결해 나가면서, 더 큰 문제의 답을 구하는 방식.


💬 주저리
오늘 문제는 오랜만에 빨리 풀었다. 점화식을 생각해내는게 어렵긴한데 손으로 써가면서 역으로 규칙을 찾으니까 어렵지 않게 풀렸다. (이게 맞는지는 모르겠지만...) 오늘 알고리즘 세션도 있고 DFS,BFS 추가 멘토링도 진행해주셔서 종일 바빴는데 문제라도 빨리 풀려서 다행...

프로젝트 선택에 대한 고민이 많이된다... 커머스로 마음을 정했다가 역시 SNS를 할까했다가 다시 커머스쪽으로 마음을 정한?것같다... 아무래도 안해본걸 해보는 쪽이 좋지 않을까 싶다. 친구가 괜찮은 아이디어도 하나 던져줘서 그걸로 기획해봐야겠다.

프로젝트 주차 걱정도 되고 기대도 된다. 화면설계도 직접해야하는 것 같던데 이참에 피그마랑도 좀 친해지고 많이 배워갈수 있으면 좋겠다 아자아자


❓ 이번 주 진행된 팀 스터디에서 얻은 인사이트는 무엇인가요?
모노래포 공부해보기
라이트하우스 꼭 해보기

메모이제이션 / 재귀함수 : 재귀함수는 타고타고 가서 메모리를 많이 사용함
병합정렬 / 분할정렬
분류 신경쓰지말고 생각나는걸로 풀어보기


항해99 취업 리부트 코스를 수강하고 작성한 콘텐츠 입니다. https://hanghae99.spartacodingclub.kr/reboot

0개의 댓글