Algorithm/Study

[99클럽 코테 스터디] 📝 Day20. 동적계획법 (2)

ioh'sDeveloper 2024. 6. 9. 22:52
99클럽 코테 스터디 20일차 TIL + 동적계획법

📍 오늘의 학습 키워드

  • 동적 계획법(Dynamic Programming)
  • 메모이제이션(Memoization)

📝 공부한 내용 본인의 언어로 정리하기

📖 오늘의 회고

📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지

오늘은 동적 계획법과 메모이제이션에 대해 학습했습니다. 문제 해결 과정에서 주어진 문제를 작은 부분 문제로 나누고, 이를 해결하는 방법을 익혔습니다.

실패한 이유는 초기에 사용한 코드가 올바르지 않았기 때문입니다. 초기 코드에서는 모든 연산자의 경우의 수를 탐색하면서 최댓값을 계산했지만, 중복 계산이 많이 일어나고 효율성이 낮았습니다.

🤔 어떻게 해결했는지

🔖 참고링크 (https://develop-tracking.tistory.com/88)

문제를 작은 단위로 쪼개어 해결하고, 메모이제이션을 통해 중복 계산을 피하는 방법을 사용하여 문제를 해결했습니다.

실패한 이후, 메모이제이션과 동적 계획법을 사용하여 중복 계산을 피하고 효율성을 개선했습니다. 메모이제이션을 통해 이전에 계산한 값을 저장하고 재활용함으로써 중복 계산을 최소화했습니다. 또한, 재귀 호출을 통해 문제를 작은 단위로 나누고 최적해를 찾았습니다.

  • 실패한 코드와 성공한 코드의 차이점
    • 실패한 코드는 중복 계산을 피하지 않고 모든 연산자의 경우를 탐색했습니다.
    • 성공한 코드에서는 메모이제이션을 사용하여 중복 계산을 피하고, 최적해를 탐색했습니다.

🤓 무엇을 새롭게 알았는지

동적 계획법과 메모이제이션을 통해 중복 계산을 효율적으로 피하는 방법을 배웠습니다. 작은 문제를 해결하는 방법을 익히면서 전체 문제를 해결하는 효율적인 방법을 이해했습니다.

실패한 코드를 통해 중복 계산의 문제점을 파악하고, 이를 극복하기 위해 메모이제이션과 동적 계획법을 활용하는 방법을 배웠습니다. 작은 문제로 나누고 이를 해결하여 전체적인 최적해를 찾는 방법에 대해 이해했습니다.

⏳ 내일 학습할 것은 무엇인지

다음에는 더 복잡한 알고리즘과 자료구조에 대해 학습하고, 문제 해결에 적용해보려고 합니다. 특히 그래프 알고리즘과 동적 계획법을 더 깊게 이해하고자 합니다.