99클럽 코테 스터디 19일차 TIL + 동적 프로그래밍 (DP) 2
📍 오늘의 학습 키워드
동적 프로그래밍
📝 공부한 내용 본인의 언어로 정리하기
동적 프로그래밍은 복잡한 문제를 효율적으로 해결하기 위한 알고리즘 기법 중 하나입니다. 이를 위해 몇 가지 주요 개념을 이해해야 합니다.
- 최적 부분 구조 (Optimal Substructure): 큰 문제를 작은 문제로 나눌 수 있고, 작은 문제의 최적해를 이용하여 큰 문제의 최적해를 구할 수 있는 구조입니다.
- 중복되는 부분 문제 (Overlapping Subproblems): 동적 프로그래밍에서는 같은 문제를 반복해서 해결해야 할 때가 있습니다. 중복되는 계산을 피하기 위해 이미 계산한 값을 저장하고 재활용합니다.
- 메모이제이션 (Memoization): 이미 계산한 값을 저장하고 재활용하는 기법으로, 주로 재귀적인 방법에서 활용됩니다.
- 탑다운 vs. 보텀업 (Top-down vs. Bottom-up): 동적 프로그래밍은 재귀적인 방식인 탑다운 방식과 순차적으로 작은 문제부터 해결하는 보텀업 방식으로 구현될 수 있습니다.
- 상태 정의 및 전이 관계 (State Definition and Transition Relation): 문제를 해결하기 위해 상태를 정의하고 상태 간의 전이 관계를 이해해야 합니다.
📖 오늘의 회고
📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지
오늘은 동적 프로그래밍에 대해 공부했습니다. 예전에도 한 번씩 접해봤지만, 다시 공부하니 좀 더 명확해진 느낌이었습니다.
🤔 어떻게 해결했는지
🔖 참고링크 ()
공부한 내용을 정리하면서 핵심 개념을 확실히 이해하기 위해 예제와 함께 복습했습니다. 또한 관련된 문제들을 풀어보며 실전 경험을 쌓았습니다.
🤓 무엇을 새롭게 알았는지
동적 프로그래밍이나 다이나믹 프로그래밍이라고도 불리는 이 기법이 어떤 상황에서 사용되는지, 그리고 어떻게 구현하는지에 대해 더 자세히 알게 되었습니다.
⏳ 내일 학습할 것은 무엇인지
내일은 동적 프로그래밍을 활용한 실제 문제들을 풀어보면서 실전적인 경험을 쌓아보려고 합니다.
'알고리즘 & 자료구조 > 스터디 (Algorithm Study)' 카테고리의 다른 글
[99클럽 코테 스터디] 📝 Day21. 동적계획법 (3) (0) | 2024.06.09 |
---|---|
[99클럽 코테 스터디] 📝 Day20. 동적계획법 (2) (0) | 2024.06.09 |
[99클럽 코테 스터디] 📝 Day18. 동적 프로그래밍 (DP) (0) | 2024.06.09 |
[99클럽 코테 스터디] 📝 Day17. 그리디 알고리즘 (0) | 2024.06.09 |
[99클럽 코테 스터디] 📝 Day13. BFS (1) | 2024.06.09 |