-
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
45-9kyo-hwang #166
45-9kyo-hwang #166
Conversation
This reverts commit abf29de.
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[w][t][0] = max(dp[w][t - 1][0], dp[w - 1][t - 1][1]) + (poses[t] == 0)
dp[w][t][1] = max(dp[w - 1][t - 1][0], dp[w][t - 1][1]) + (poses[t] == 1)
μ΄λ κ² poses[t] == 0, 1
λ‘ κ΅¬ννκ² μμ² μ°Έμ νκ±Έμ?!
DPλ μμ§ μ΄λ €μμ PR 보면μ μ½κ² μ΄ν΄ν μ μμμ΅λλ€!
λΈλ‘κ·Έλ μ°Έκ³ ν΄μ 보λ λͺ λ²μ§Έ λ무μΈμ§(T)λ‘ μμνμ¬ λͺ λ² λ°κΏ¨λμ§(W)λ‘ μ§ννλ λ°©λ²λ μλλΌκ΅¬μ.
μ°Έκ³ ν΄λ μ’μ κ² κ°μ μ¬μ§μΌλ‘λ§ λ¨κ²¨λ΄
λλ€..π
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μ°¨μ DPλ‘ νμμ΅λλ€!
dp[μκ°][μ리λ₯Ό λ°κΎΌ νμ]
λ‘ μλ©΄ λ κ² κ°μ΅λλ€.
2μ°¨μμΌλ‘ μ€μΌ μ μμλ μ΄μ λ μ리λ₯Ό λ°κΏ¨μ λ, μ»μ μ μλ μλλ무μ λ²νΈλ μ ν΄μ Έ μλ€λ κ²μ μ¬μ©νμ΅λλ€.
μλ₯Ό λ€μ΄
μ리λ₯Ό 1λ² λ°κΎΈλ©΄, 2λ² μλλ무 / μ리λ₯Ό 2λ² λ°κΎΈλ©΄, 1λ² μλλ무
νμλ§νΌ λ°κΎΈλ©΄ 2λ²μ λ¨Ήμ μ μκ³ , μ§μλ§νΌ λ°κΎΈλ©΄ 1λ²μ λ¨Ήμ μ μμ΅λλ€.
κ²°κ΅ μ΄λ€ μκ°μ μλλ₯Ό λ¨Ήμ μ μλ μλλ₯Ό μ μ μμ΅λλ€.
μ΄μ λΆν΄ DPμ νμμ λ§μ΄ ν΄λ³Έ λλμ΄λΌμ λ κ°λ¨ν©λλ€.
μ΄μ μ μκ°μμ μ리λ₯Ό λ°κΏ λμ κ·Έλλ‘ μμ λ μ€μμ λ ν° κ°μ λν΄μ£Όλ©΄ λ©λλ€.
μ κ³Όμ μ μ΄μ©ν΄μ κ²°κ³Όλ₯Ό λ΄λ©΄ μλ μ΄λ―Έμ§μ κ°μ κ²°κ³Όκ° λμ΅λλ€.
κ·ΈλΌ μ μΌ λ§μ§λ§ μκ°μμ max κ°μ μ°Ύμμ μΆλ ₯νλ©΄ λ©λλ€.
input = open("input.txt").readline
time, can_change = map(int,input().split())
dp = [[0]*(can_change+1) for _ in range(time)]
for t in range(time):
for set in range(int(input())-1, can_change+1, 2):
dp[t][set] += 1
for t in range(1, time):
for idx in range(min(t, can_change)+1):
if idx == 0:
dp[t][idx] += dp[t-1][idx]
continue
dp[t][idx] += max(dp[t-1][idx-1], dp[t-1][idx])
print(max(dp[-1]))
λ°λ‘ μ΄μ μ κ°λ§ κΈ°μ΅νλ©΄ λκΈ° λλ¬Έμ, timeλ§λ€ κΈ°μ΅νμ§ μμλ λλ μ μ μ΄μ©νλ©΄ λ©λͺ¨λ¦¬λ₯Ό λ μ€μΌ μ μμ κ² κ°μ΅λλ€.π€
κ°λ¨νκ² λ§νλ©΄, 2λ² μ 보λ₯Ό μλ΅ν λ°©λ²μΈ κ² κ°μ΅λλ€! |
π λ¬Έμ λ§ν¬
2240 μλλ무
βοΈ μμλ μκ°
1μκ° λ°?
β¨ μλ μ½λ
1. λ¬Έμ
μλ λ무 λ κ·Έλ£¨κ° 1λ² μμΉμ 2λ² μμΉμ μλ€. 1μ΄λΆν°$T$ ($1 \le T \le 1,000$ )μ΄κΉμ§ 맀 μ΄λ§λ€ λ λ무 μ€ νλμμ μλκ° λ¨μ΄μ§λ€.$W$ ($1 \le W \le 30$ )λ² μμ§μ¬ μ΅λν λ§μ΄ μλλ₯Ό μ»κ³ μ νλ€.
1λ² μμΉμμ μμν΄μ, μ΅λ
1λ² μμΉμ 2λ² μμΉλ₯Ό μ΄λνλ λ°λ λ³λμ μκ°μ΄ λ€μ§ μλλ€κ³ ν λ, μ»μ μ μλ μ΅λ μλ κ°μλ₯Ό κ΅¬ν΄ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νλΌ.
μλ₯Ό λ€μ΄ T = 7, W = 2 μ΄κ³ μλκ° λ¨μ΄μ§λ λ무 μ λ³΄κ° [2, 1, 1, 2, 2, 1, 1] μ΄λ κ² μ£Όμ΄μ‘μ λ
μ΄ κ²½μ°κ° Wλ² μ΄λ΄ μμ§μ΄λ©° μλλ₯Ό 6κ°λ‘ μ΅λνμΌλ‘ μ»μ μ μλ€.
2. μ‘λ΄
λμ½μ μΆμ² λ¬Έμ λ‘ μ¬λΌμ¨ μ§λ κ½€ λμΌλ, κ³μ μ νκ³ μλ€κ° μ΄λ² νκ²½λ 3λ² λ¬Έμ μμ μ² ν΄λ₯Ό λΉνκ³ μ°Ένμ μλ―Έλ‘ νκ² λμλ€ νν
μ§μ§ λ¬Έμ κ° κ±°μ λΉμ·νλ€...
3. νμ΄
λ¨μν μκ°νλ©΄
μ΄λ° μμΌλ‘ λͺ¨λ κ²½μ°λ₯Ό λ€ λμ보면 ν μ μλ€.
λ¬Έμ λ 1λ² μ΄μ μμ§μΌ μ μκ² λλ©΄ "μ΄λμ μμ§μ¬μΌ μ΅λμΈκ°"λ₯Ό μ°ΎκΈ° μν΄ λ¬΄μν λ§μ κ²½μ°μ μλ₯Ό νμ ν΄μΌ νλ€.
κ·Έλ°λ° μ μκ°ν΄λ³΄λ©΄ κ½€ λ§μ κ²½μ°μ μκ° "μ€λ³΅"λλ€. μλ₯Ό λ€μ΄ "2μ΄ μμ μ 1λ² μμΉμμ 2λ² μμΉλ‘ μ΄λ"ν κ²°κ³Όκ° λͺ¨λ κ²½μ°μμ λ¨ ν λ²λ§ λ±μ₯νμ§ μλλ€. μ μμ κ±Έμ³ μ¬λ¬ λ² νμΈνκ² λ κ²μ΄λ€.
κ·Έλ λ€λ©΄, "λ€μ΄λλ―Ή νλ‘κ·Έλλ°" κ°λ μ μ μ©μμΌ κ²°κ³Όλ₯Ό μΊμ±ν΄λμΌλ©΄ μ€λ³΅μ μ€μΌ μ μλ€.
μ‘°κΈ λ μκ°ν΄λ³΄μ.
μν©μ μΌλ°νν΄λ³΄λ©΄, T - 1μ΄ μμ μμ 1λ²/2λ² μμΉμμ μ΄λμ νλκ° μνλκ° ν΄μ Tμ΄ μμ μ κ°κ° μ΅λλ‘ λ§μ΄ λ΄ μλ κ°μλ₯Ό κΈ°λ‘ν μ μλ€.
μ΄ κ³Όμ μμ λ§μ½ ν λ²λ μμμ§μ΄λ κ²½μ°λΌλ©΄ a -> c, b -> dλ§ νμ©λ κ²μ΄κ³ , μλλΌλ©΄ λ κ²½μ° λͺ¨λ κ³ λ €νκ² λ κ²μ΄λ€. μ¦ μμ§μΌ μ μλ νμμ λ°λΌ κ²½μ°μ μκ° λλλ€.
μ¦ 1. μκ° μ 보 2. μ’ν μ 보 3. μμ§μΈ νμ μ 보 3κ°μ§λ₯Ό κ°μ§κ³ ν μ΄λΈμ λ§λ€λ©΄ μΌλ°νλ μ νμμ μ΄μ©ν΄ bottom-up λ°©μμ dpλ₯Ό ꡬνν μ μκ² λλ€. μ΄μ μ½λλ‘ νμΈν΄λ³΄μ.
μ£Όμ΄μ§ μ λ ₯μ μ μ₯νλ€. μΈλ±μ€ μ²λ¦¬λ₯Ό νΈλ¦¬νκ² νκΈ° μν΄μ 1λ², 2λ²μ 0λ², 1λ²μΌλ‘ λ°κΏμ μ μ₯νλ€.
λν μμ μμΉκ° 1λ²μ΄λ―λ‘ μ’ν 리μ€νΈ 맨 μμ [0]μ λ§λΆμΈλ€.
μ κ·Έλ¦Όμ ν λλ‘ μΌλ°νλ μ νμμ μΈμ°λ©΄ μμ κ°λ€.
dp[w][t][0]λ wλ² μμ§μΈ μν©μμ, tμ΄ μμ μ 0λ² μμΉμμ μ»μ μ μλ μ΅λ μλ κ°μλ₯Ό μλ―Ένλ€. μ΄λ
μ λ κ²½μ° μ€ ν° κ²½μ°μ, tμ΄ μμ μ μλκ° λ¨μ΄μ§λ λ무 μμΉκ° 0μ΄λ©΄(poses[t] == 0) + 1μ ν κ²½μ°κ° μ΅λμ΄λ€.
dp[w][t][1]λ λμΌν λ Όλ¦¬μ΄λ€.
μ¬κΈ°μ μμΈλ‘ μ²λ¦¬ν΄μΌ ν κ²½μ°κ° 2κ°μ§ μλλ°
μ¦ t-1μ΄ μμ μ ν΄λΉ μμΉμ κ°λ§ν μλ κ²½μ°λ§ νμΈνλ€.
1μ΄ μμ μ, 0λ² μμΉλ 0λ² μμΉ κ·Έλλ‘ κ°μ Έμ€κ³ , 1λ² μμΉλ 0λ² μμΉμμ 1λ² μμ§μΈ κ²½μ°λ§ νμΈνλ€.
μ΄λ₯Ό 0λ² μμ§μΌ μ μλ κ²½μ° ~ Wλ² μμ§μΌ μ μλ κ²½μ°λ₯Ό λ€ λμ보면μ 맀 μ΄(1 ~ T) κ°μ κ°±μ ν΄μ£Όλ©΄ λλ€.
λ§μ§λ§μΌλ‘, Tμ΄ μμ μμ 0λ², 1λ², ..., Wλ² μμ§μμ λ 0λ²/1λ² μμΉμ κΈ°λ‘λ μ΅λ μλ κ°μλ₯Ό μΆλ ₯νλ©΄ μμ±μ΄λ€.
μ 체 μ½λ
π μλ‘κ² μκ²λ λ΄μ©
μμ μ΄μν μ½μ§νλ€κ³ μκ° λ무 λ§μ΄ λ λ Έλ€.
μν΄ μ§μμ νμ΄λ³Όκ±Έ...