#1 μκ³ λ¦¬μ¦
#1-1 μ μ
λμ νλ‘κ·Έλλ°μ ν μ€ μμ½νλ©΄ μ€λ³΅μ μ κ±°λ€. μ μ (static)μ΄λΌλ κ°λ
κ³Ό λ°λλλ κ°λ
μΌλ‘μ, λμ (dynamic)μ΄λΌλ λ¨μ΄κ° μ΄λ¦μ λΆμλ€. νμ€ν staticμ΄ λΆμ λ§ν μμ
μ μλμ§λ§, κ·Έλ λ€κ³ λ§μ λ¨μ΄λ€ μ€μ κ΅³μ΄ dynamicκ° λΆμ νμ λν μλ€. 'λμ ', ' dynamic'μ΄λΌλ μ΄λ¦μ λμ νλ‘κ·Έλλ°μ (μ€λ³΅μ μ κ±°λΌλ) ν΅μ¬μ μ§κ΄μ μΌλ‘ μ΄ν΄νμ§ λͺ»νκ² λ§λ λ€. νμ§λ§, κ΄λ‘μ μΌλ‘ μ΄λ―Έ κ΅³μ΄μ§ μ΄λ¦μ΄λΌ μμΌλ‘λ μ°μΌ κ²μ΄λΌλ μ¬μ€μ μνκΉμ°λ©΄μλ λΆλͺ
νλ€.
#1-2 μ’ λ₯
λμ νλ‘κ·Έλλ°μ μ΄μ κ°μ΄ 2κ°μ§ λ°©μμΌλ‘ λλλ€.
#1-3 μν₯μ(Bottom-up) μ κ·Ό
[λ°±μ€] 17626 - Four Squares
#1 μκ³ λ¦¬μ¦ 123 123 μ¬κ· ν¨μκ° νκ· μ μΌλ‘ 1λ§ λ² μΈμ 리 νΈμΆλμμ λ μ¦μ μ€νμ€λ²νλ‘μ°κ° κ±Έλ Έλ€. #2 μ¬λ΄ dpλ¬Έμ μΈμ€ λͺ¨λ₯΄κ³ ν루 μ’ μΌμ λ λ Έλ€. κ·Έλ¦¬κ³ dpλ¬Έμ νΉμ§μ΄ μ£λ€ μΊμ±μ© λ³μ
kenel.tistory.com
μν₯μ λμ νλ‘κ·Έλλ°μ νμ΄μ μλ μ κ²μκΈμ μλ€. ν΄λΉ κ²μκΈμ #1-4κ³Ό #3μ 보면 λλ€. μ½λλ₯Ό 보면, μν₯μ μ κ·Όμ 'λΉνμμ΄ μμκ°λ λ°©μ'μ΄λΌκ³ ν μ΄μ λ₯Ό μ μ μλ€. ν΄λΉ κ²μκΈμ λ°°μ΄ dpλ μΈλ±μ€ 0μ μ μΈνκ³€ μ λΆ λ€ μ΄κΉκ°μ΄ μλ κ°μ΄ ν λΉλμ΄ μλ€. νμ΄ μλ€. μμΌλ‘ μ§κΈλ³΄λ€ λ ν° λ¬Έμ λ₯Ό νΈλ λ°μ μμ΄, μ΄λ€ μμ λ¬Έμ κ° μ°μΌ μ§ μλ μ§λ μ°λ¦¬κ° ν° λ
Έμ΄λ§μ΄ μλ μ΄μ λͺ¨λ₯΄κΈ° λλ¬Έμ΄λ€. λ°λΌμ λΉνμμ΄ λͺ¨λ λ¬Έμ μ ν΄λ₯Ό ꡬν΄λλ κ²μ΄λ€. μ¬κΈ°μμ μν₯μ μ κ·Όμ λ¨μ μ μ μ μλ€. λ°λ‘ λ©λͺ¨λ¦¬λ₯Ό λ§μ΄ μ°¨μ§νλ€λ μ μ΄λ€.
μ¬λ΄μΌλ‘, ν΄λΉ κ²μκΈμ #4λ₯Ό 보면 νν₯μ λμ νλ‘κ·Έλλ°μ λ¨μ λ μ μ μλ€. μ¬κ·νΈμΆμ΄ κ³Όλνκ² λ§μμ§λ©΄ μ€ν μ€λ²νλ‘μ° λ°νμ μλ¬κ° λ°μνλ€. λ°λΌμ κ³Όλνκ² λ§μ μ¬κ·νΈμΆμ΄ λ°μνλ λ¬Έμ λΌλ©΄ νν₯μ λμ νλ‘κ·Έλλ°μ μ°κΈ° μ΄λ ΅λ€.
#1-4 νν₯μ(Top-down) μ κ·Ό
[λ°±μ€] 1003 - νΌλ³΄λμΉ ν¨μ
#1 μκ³ λ¦¬μ¦ #2 μ½λ (μλ°) import java.util.*; public class Main { public static Map map = new HashMap(); public static void main(String[] args) { Integer[] seedData0 = {1, 0}; Integer[] seedData1 = {0, 1}; map.put(0, seedData0); map.put(1, seedDat
kenel.tistory.com
μ΄λ²μλ νν₯μ λμ νλ‘κ·Έλλ°μ μλ€. ν΄λΉ κ²μκΈμ fibonacci()λ ν° λ¬Έμ λ₯Ό μμ λ¬Έμ λ‘ μͺΌκ°λκ°λ€. μ΄λ, ν λ² κ°μ΄ ꡬν΄μ§ λ¬Έμ λ Map κ°μ²΄μ λ§ κ·Έλλ‘ 'λ©λͺ¨'λμ΄, λ€μμ κ°μ λ¬Έμ λ₯Ό λ§λλ©΄ λ€μ κ³μ°ν νμμμ΄ λ©λͺ¨νλ κ±Έ κ·Έλλ‘ κ°μ Έλ€κ° μ΄λ€. ν° λ¬Έμ λ₯Ό μͺΌκ°μ΄ λμ¨ μ΄λ€ μμ λ¬Έμ λ λ°λμ κ·Έ ν΄λ₯Ό ꡬν΄μΌ νλ νμ λͺ©νκ° λλ©°, ν΄λ₯Ό ꡬν κΉμ λ©λͺ¨κΉμ§ νμ¬ λ―Έλμ νΉμλΌλ λμ¬ κ°μ λ¬Έμ μ λλΉνλ κ²μ΄λ€.
#1-5 λ μ κ·Όλ²μ λΉκ΅
μν₯μ μ κ·Όκ³Όλ λ¬λ¦¬, νν₯μ μ κ·Όμ μ½λμμ μ΄λ€ μμ λ¬Έμ μ ν΄κ° 'λ©λͺ¨'λμλμ§ μ²΄ν¬νλ λΆλΆμ΄ μλ€. μν₯μ μ κ·Όμμλ μμ λ¬Έμ λ₯Ό λ¨ νλλ λΉ λ¨λ¦¬μ§ μκ³ λ§μΉ κΉμ§νλ― νμ΄κ°λ©° μλ‘ μ¬λΌκ°κΈ° λλ¬Έμ, μμ λ¬Έμ λ₯Ό μ΄μ μ μ΄λ―Έ νμ΄μ κ·Έ ν΄λ₯Ό μ λλ‘ μ μ₯ν΄λμμμ μμ¬ν νμκ° μλ€. λ°λ©΄, μν₯μ μ κ·Όμμλ μμ ν΄λ₯Ό λμλμ λ©λͺ¨νκΈ° λλ¬Έμ, μ΄λ€ μμ λ¬Έμ κ° μ΄μ μ νμλ κ²μΈμ§ νμ€μΉ μλ€. λ°λΌμ, 체ν¬νλ€.
λμ νλ‘κ·Έλλ°μ λ μ’
λ₯ λͺ¨λ ν° λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μ μμ λ¬Έμ λ€μ ν΄λ₯Ό λ°λ‘ μ μ₯ν΄λλ€λ μ μ λμΌνλ€. λ€λ§ κ·Έ μ μ₯μ μμμ΄ λ€λ₯Ό λΏμ΄λ€. μν₯μ μ κ·Όμ΄ 'λΉνμμ΄ μμκ°λ€'λΌλ©΄, νν₯μ μ κ·Όμ μ΄λ₯Έλ° 'λΉνμκ² μμκ°λ€'κ³ λ§ν μ μλ€. λ, νν₯μ μ κ·Όμ΄ λ©λͺ¨λΌλ©΄, μν₯μ μ κ·Όμ κΉμ§λ€. κ·Έλ¦¬κ³ νν₯μ μ κ·Όμμμ λ©λͺ¨λ₯Ό νΉλ³ν, μΊμ± λλ λ©λͺ¨μ΄μ μ΄μ
μ΄λΌκ³ λΆλ₯Έλ€ (μν₯μ μ κ·Όμμμ λ©λͺ¨(κΉμ§)λ λ§μ°¬κ°μ§λ‘ μΊμ±μ΄λΌκ³ λΆλ₯΄λ κ²μΌλ‘ 보μΈλ€. μλ°ν ꡬλΆλμ§λ μλ보λ€).
#1-6 μΊμ±
λ©λͺ¨μ΄μ μ΄μ (Memoization, λ©λͺ¨)μ λ©λͺ¨λ¦¬μ μ΄μ (Memorization, κΈ°μ΅)κ³Ό λ€λ₯Έ λ¨μ΄λ€. λ©λͺ¨μ΄μ μ΄μ μ λ©λͺ¨(Memo)μμ νμλ λ¨μ΄λ€. λ©λͺ¨μ΄μ μ΄μ μ μ½κ° νμ μ μΈ λ¬μμ€μ λ¨μ΄λ©°, μ€λ¬΄μμλ μ£Όλ‘ μΊμ±μ΄λΌλ λ§λ‘ λΆλ¦°λ€κ³ νλ€. μΊμ±μ΄ λμ νλ‘κ·Έλλ°μ ν¬ν¨λλ κ°λ μ μλλ€. μ¦, λμ νλ‘κ·Έλλ°μ λͺ©μ μΌλ‘λ§ νμ λμ΄ μ°μ΄λ κ°λ μ΄ μλλ€. λ§ κ·Έλλ‘ 'λ©λͺ¨νκΈ°'μΈλ° μΌλ§λ μΆμμ μ΄λ©°, κ·Έλ κΈ°μ μΌλ§λ ν° νμ© κ°λ₯μ±μ μ§λ κ² λκ°?
#2 λμ νλ‘κ·Έλλ° μ¬μ© μμ λ§μκ°μ§
[λ°±μ€] 11053 (κ°μ₯ κΈ΄ μ¦κ°νλ λΆλΆ μμ΄)
#1 μκ³ λ¦¬μ¦ Longest increasing subsequence - WikipediaFrom Wikipedia, the free encyclopedia Computer science problem In computer science, the longest increasing subsequence problem aims to find a subsequence of a given sequence in which the subsequenc
kenel.tistory.com
λμ νλ‘κ·Έλλ°μ λκ΅¬μΌ λΏμ΄λ€. κ²°κ΅ μ¬μ©μλ μ¬λμ΄λ€.
#3 μμ½
λμ νλ‘κ·Έλλ°μ μ€λ³΅ μ κ±°λ€.
#4 μ΄ κ°λ μ΄ μ¬μ©λ κΈ
#4-1 μν₯μ(Bottom-up) μ κ·Ό
[λ°±μ€] 17626 - Four Squares
#1 μκ³ λ¦¬μ¦ 123 123 μ¬κ· ν¨μκ° νκ· μ μΌλ‘ 1λ§ λ² μΈμ 리 νΈμΆλμμ λ μ¦μ μ€νμ€λ²νλ‘μ°κ° κ±Έλ Έλ€. #2 μ¬λ΄ dpλ¬Έμ μΈμ€ λͺ¨λ₯΄κ³ ν루 μ’ μΌμ λ λ Έλ€. κ·Έλ¦¬κ³ dpλ¬Έμ νΉμ§μ΄ μ£λ€ μΊμ±μ© λ³μ
kenel.tistory.com
[λ°±μ€] 9095 - 1, 2, 3 λνκΈ°
#1 μκ³ λ¦¬μ¦ #1-1 λμ νλ‘κ·Έλλ° (Dynamic Programming), μν₯μ(Bottom-up) λ° νν₯μ(Top-down) μ κ·Ό #1 μκ³ λ¦¬μ¦ λμ νλ‘κ·Έλλ°μ ν μ€ μμ½νλ©΄ μ€λ³΅μ μ κ±°λ€. μ μ (static)μ΄λΌλ κ°λ κ³Ό λ°λλλ κ°λ
kenel.tistory.com
[λ°±μ€] 1676 (ν©ν λ¦¬μΌ 0μ κ°μ)
#1 μκ³ λ¦¬μ¦ #1-1 λ¬Έμ μ ν΅μ¬ μ΄ λ¬Έμ μ ν΅μ¬μ, x!κ° κ°μ§κ³ μλ 2*5 μμ κ°―μλ§νΌ λ€μ 0μ΄ λΆλλ€λ κ·μΉμ νμ μ΄λ€. #1-2 μν₯μ λμ νλ‘κ·Έλλ° λμ νλ‘κ·Έλλ° (Dynamic Programming), μν₯μ(Bot
kenel.tistory.com
#4-2 νν₯μ(Top-down) μ κ·Ό
[λ°±μ€] 1003 - νΌλ³΄λμΉ ν¨μ
#1 μκ³ λ¦¬μ¦ #2 μ½λ (μλ°) import java.util.*; public class Main { public static Map map = new HashMap(); public static void main(String[] args) { Integer[] seedData0 = {1, 0}; Integer[] seedData1 = {0, 1}; map.put(0, seedData0); map.put(1, seedDat
kenel.tistory.com
[λ°±μ€] 1463 (1λ‘ λ§λ€κΈ°)
#1 μκ³ λ¦¬μ¦ λμ νλ‘κ·Έλλ° (Dynamic Programming), μν₯μ(Bottom-up) λ° νν₯μ(Top-down) μ κ·Ό #1 μκ³ λ¦¬μ¦ #1-1 μ μ λμ νλ‘κ·Έλλ°μ ν μ€ μμ½νλ©΄ μ€λ³΅μ μ κ±°λ€. μ μ (static)μ΄λΌλ κ°λ κ³Ό λ°λλλ
kenel.tistory.com
'κΉ¨μ κ°λ π > μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
κ·Έλν - λλΉ μ°μ νμ (BFS, Breadth-First Search) (0) | 2024.09.23 |
---|---|
κ·Έλν - κ·Έλνμ μ’ λ₯μ νν (0) | 2024.01.09 |
μ λ ¬ - ν΅ μ λ ¬ (Quick Sort) (0) | 2023.12.01 |
μ λ ¬ - μ½μ μ λ ¬ (Insertion Sort) (0) | 2023.11.29 |
μ λ ¬ - ν μ λ ¬ (Heap Sort) (0) | 2023.11.20 |