-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
21-gjsk132 #103
21-gjsk132 #103
Conversation
change knapsack Problem to DP
β¦ into 21-gjsk132
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ°γ
μ ... λ€μ΄λλ―Ήνλ‘κ·Έλλ° λ¬Έμ λ₯Ό 리뷰ν μ€μ λͺ°λλλ° ...
λμλ λλΆμ μ’μ λ¬Έμ λ₯Ό νμ΄λ³Ό μ μμμ΅λλ€ κ°μ¬ν©λλ€ :)
λ¬Έμ λ₯Ό μ΄ν΄νλλ°λ§ 1μκ°
μ§μ μμΌλ‘ λ°λΌ μ μΌλ©΄μ μ νμμ μΈμ λ΅μ μ°Ύλλ° 2μκ°μ΄ κ±Έλ Έλ€μ ππππ
μ΄ λΆλΆμ΄ μ ννκ² μ μλΏμ§ μμλλ° μ§μ μ¨λ³΄λ©΄μ μ΄ν΄λ₯Ό ν μ μκ² λμμ΅λλ€
λμ μ’
λ₯ λ³λ‘ λμ μ μ¬μ©νμ λ λ¨μ λμ μ λ§λλ λ° νμν μ΅λ κ²½μ°μ μμ
λμ μ μ¬μ©νμ§ μμμ λμ κ²½μ°μ μ λ₯Ό ꡬνκΈ° μν΄
κ°μ₯ μμ λμ μ μ¬μ©ν΄μ targetμ΄ λ λκΉμ§μ κ²½μ°μ μλ₯Ό ꡬνκ³ κ·Έ λ€μ ν° λμ μΌλ‘ μ΄μ μ ꡬν μμ λμ μΌ λμ κ²½μ°λ₯Ό λμ μΌλ‘ λν΄κ°μΌ νλ€λ κ²μ μ μ μμμ΅λλ€.
Target Nμ λ§λλ κ²½μ°μ μ
= Target - μ¬μ©ν λμ λ§νΌμ κ²½μ°μ μ + λ¨μ λμ μΌλ‘ λ§λ€ μ μλ κ²½μ°μ μ
μμ dp[n-coin] + dp[n]
λΌλ μ νμμ μΈμΈ μ μμμ΅λλ€. π‘
μμ νμμ 1+3, 1+3+5μμ μλ―Έλ₯Ό λͺ°λλλ° 3 λλ 5μμΌλ‘ ꡬν μ μλ μ΅λ κ²½μ°μ μλ₯Ό λ¨Όμ κ³μ°ν λ€μ , 1λ‘ κ³μ°ν κ²½μ°μ μλ₯Ό λνλ€λ κ²μ μ΄ν΄ν μ μμμ΅λλ€ ππ
λ€μμλ λ°°λ λ¬Έμ μλ νλ² λμ ν΄λ³Ό μ μμ κ² κ°μμ !! πππ
λ κΈ°νκ° λλ€λ©΄ 리뷰νλ¬ μ€κ² μ΅λλ€ γ
γ
μλ μ΄μ¬λ μλ²½ 6μκΉμ§ μμκ³ λ¦¬λ·° λ¬μλ€ γ·γ· |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ν μ DP λλ½κ² λͺ»νλ€μ...
μΌμΆ μ κ·Όμ μ λ΅μ λΉμ·νκ² νλλ°, 1μλΆν° target κΈμ‘κΉμ§ κ°κ°μ κΈμ‘μ λν΄ κ° coinμΌλ‘ λ§λ€ μ μλ κ²½μ°μ μλ₯Ό λμ νλ μμΌλ‘ μ½λ μ§°λ€κ° 1μκ° μ λ λ Έλ€μ...
for pos in range(1, target + 1):
for coin in coins:
μ΄μ©κ΅¬μ μ©κ΅¬...
for coin in coins: | ||
for pos in range(1, target+1): | ||
money[pos] += 1 if coin == pos else money[pos-coin] if pos > coin else 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
coinμ μ΄μ©ν΄ money[coin]μ λ°λμ λ§λ€ μ μμΌλ μ²μλΆν° +1μ μ£Όκ³ μμνλ©΄ νΈνκ² μ£ ?
κ·Έμ λμμ, μ μ΄λΆν° λ§λ€κ³ μ νλ κΈμ‘ posλ coinλ³΄λ€ μμ μκ° μμΌλ κ²μ¬ν λλΆν° λ²μλ₯Ό κ±Έλ¬μ£Όλ©΄ λ μ’μ΅λλ€.
for coin in coins:
money[coin] += 1
for pos in range(coin + 1, target + 1):
money[pos] += money[pos - coin]
κ·Έλ¬λ©΄ λ³λμ 쑰건 κ²μ¬ μμ΄ (pos - coin) κΈμ‘μ λ§λ€κΈ° μν κ²½μ°μ μλ₯Ό λ°λ‘ λμ ν΄μ£Όλ©΄ λ©λλ€.
λμλ λλΆμ λμ 1 λ ν΄κ²° νμλλ€. κ°μ¬λ립λλ€ (__) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
λμ κ³νλ²...μ΄λ¦λ§ λ€μ΄λ΄€λλ° λλΆμ νλ² νμ΄λ³΄λ€μπ₯Ή
μ λ λ¬Έμ λ₯Ό μ΄ν΄νλ λ°λ§ 2μκ°μ΄ κ±Έλ Έκ³ λμ ν νμ΄μ§μ§κ° μμ λμλμ μ½λλ₯Ό λ°λΌν΄ 보면μ μ½λλ₯Ό μ΄ν΄νκ² λμμ΅λλ€π₯
λ μ¨μ£Όμ μμΈν μλ μ½λ λλΆμ λμ κ³νλ²μ΄ μ΄λ»κ² μ΄λμ μ°μ΄λμ§ μκ² λμμ΄μ! κ°μ¬ν©λλ€π
λ€μμ κ°λ
μ νμ€νκ² κ³΅λΆνκ³ λ νμ μ΄ λ¬Έμ λ₯Ό λ€μ νλ² νμ΄λ³΄μμΌκ² μ΅λλ€π
μ΄λ² PRλ μκ³ νμ ¨μ΄μ!
νμλλ BFS DFS λ€ νμκ³ DPλ νλ² ν΄λ³΄λλ‘ νμ£ ! |
π λ¬Έμ λ§ν¬
λ°±μ€ 3067 : Coins
βοΈ μμλ μκ°
2μκ°
β¨ μλ μ½λ
π― λ¬Έμ μ΄ν΄
μκ³ λ¦¬μ¦ λΆλ₯ : DP
DPμΈ μ΄μ
1 : κ° κ³ μ / 2 : μμ λ¬Έμ λ°λ³΅
μ£Όμ΄μ§ λμ μΌλ‘ νΉμ κΈμ‘μ λ§λλ κ²½μ°μ μλ κ³ μ λμ΄ μλ€.
μμ λ¬Έμ μ λ°λ³΅μ΄λ€.
[ μμ ]
1μ, 3μ, 5μ λμ μ΄ μ£Όμ΄μ§κ³ 10μμ λ§λ€ μ μλ λͺ¨λ κ²½μ°μ μλ₯Ό ꡬνλ€κ³ μκ°ν΄λ³΄μ.
μ°μ 1μ ν μ’ λ₯λ₯Ό μ¬μ©νμ¬ 10μμ λ§λ€μ΄λ³΄μ.
1μμ΄ κ°μ₯ λ¨Όμ μκΈ°λ μμΉλ κΈμ‘μ΄ 1μμΌ λμ΄λ€.
κ·Έ μ΄ν 1μλ³΄λ€ κΈμ‘μ΄ μ»€μ§λ κ²½μ°μμλ
λμ λ§νΌ μμ κΈμ‘μ λ§λλ κ²½μ°μ μκ° μΆκ°λλ€.
πμ½λ μ€λͺ
cnt
: λμ μ μcoins
: λμ μ μ’ λ₯target
: λͺ©ν κΈμ‘money
: κ° κΈμ‘λ³ λμ μ μ‘°ν© μex)
money[5]
: 5μμ λ§λ€ μ μλ λμ μ μ‘°ν© μcnt, coins, targetμ μ λ ₯λ°κ³ , moneyλ target + 1 κΈΈμ΄μ λ°°μ΄λ‘ λ§λ€μ΄μ€λ€.
ν΅μ¬ μ½λ
coinsμ ν μ’ λ₯μ© λλ €κ°λ©΄μ κ° κΈμ‘λ³ κ°λ₯ν κ²½μ°μ μλ₯Ό ꡬν΄μ€λ€.
λ§μ½ coinκ³Ό posκ° κ°λ€λ©΄ ν΄λΉ μμΉμμ 1λ§ λν΄μ€λ€.
( ν μ’ λ₯μ coinμ΄ λ§¨ μ²μ μκΈ°λ μ§μ )
μ΄νμλ coinμ κΈμ‘λ§νΌ μμ κ²½μ°λ₯Ό λν΄μ£Όλ©΄ λλ€.
λ§μ½, (
pos < coin
) νμ¬ κΈμ‘μ΄ λμ μ κΈμ‘λ³΄λ€ μμ κ²½μ° λ¬΄μν΄μ€λ€. ( +0 )λͺ¨λ λμ μ λ€ μ΄ν΄λ³Έ νμλ
money[target+1]
μ μλ κ°μ΄ μνλ κ°μ΄λ―λ‘ λ°νν΄μ€λ€. ( κ°μ₯ λ§μ§λ§ κ°μ΄κΈ° λλ¬Έμmoney[-1]
λ‘ ν΄μ€λ μκ΄μμ )μ κ³Όμ μ νλμ ν¨μλ‘ λ§λ€μ΄μ, 맨 μ²μ μ λ ₯λλ λ°λ³΅ νμλ§νΌ λ°λ³΅ν΄μ€λ€.
μ 체 μ½λ
π μλ‘κ² μκ²λ λ΄μ©
μ λ² PRλ‘ μ¬λ¦° λ°°λ λ¬Έμ μ ν μ μν κ²Έ νμ΄λ΄€μ΄μ μλ‘ μκ²λ λ΄μ©μ λ°λ‘ μμ΅λλ€!
λκ° μ΅λν μ μ€λͺ νλ €νλλ° μ λλ‘ λͺ» ν κ² κ°λ€μ π