[[Tableofcontents]] == Dynamic Programmingì´ëž€? == * 한êµì–´ë¡œëŠ” ë™ì 계íšë²• * 사실 그냥 멋있어서 ë¶™ì¸ ì´ë¦„ * ë¬¸ì œë¥¼ ìž‘ì€ ë¬¸ì œë¡œ 나누는 것ì—서 출발 == ë¬¸ì œ == * ë¬¸ì œë¥¼ 푸는법 * ë¬¸ì œë¥¼ 나눈다. * ë¬¸ì œë¥¼ 푼다. * 결과를 합친다. => Divide And Conquer (ë¶„í• ì •ë³µ) * Memoization : ë™ì¼í•œ ê³„ì‚°ì„ ë°˜ë³µí•´ì•¼ í• ë•Œ, ì´ì „ 계산 ê°’ì„ ì €ìž¥í•¨ìœ¼ë¡œì¨ ë¹ ë¥´ê²Œ 계산하는 방법 * Dynamic Programming ì—서 í•µì‹¬ì´ ë˜ëŠ” ê¸°ìˆ * 예시 * 피보나치 함수 ( f(n) = f(n-1) + f(n-2), f(0) = 0, f(1) = 1 ) * 기본 ì •ì˜ì— ì˜í•œ Fibonacci 구현 => ì¤‘ë³µì´ ë§Žì´ ë°œìƒ => ì¤‘ë³µì— ëŒ€í•œ 결과를 미리 ì €ìž¥í•œë‹¤ë©´ => Memoization(메모ì´ì œì´ì…˜)! * ì´í•계수 * 구간합 구하기 * 2ì°¨ì› êµ¬ê°„í•© == ì‹¤ì œ ë¬¸ì œ í’€ì´ == * 백준 2748 - 피보나치 수 2 * 백준 11051 - ì´í•계수 * 백준 11659 - 구간합 구하기 4 * 백준 11660 - 구간합 구하기 5