[BaekJoon] λ°±μ€ 17626λ² : Four Squares
Updated:
17626λ² : Four Squares
DP μ λΈλ£¨νΈν¬μ€λ₯Ό μ΄μ©νλ©΄ λλ λ¬Έμ μ΄λ€.
num = 1 + dp[pivot^2 - num] μ ν΅ν΄ ꡬν μ μλ€. pivot μ 1λΆν° pivot**2 κ° num μ΄ν μΌ λ κΉμ§ 1μ© μ¦κ°νλ€.
λ§μ½ 32λ₯Ό ꡬνκ³ μΆμ κ²½μ°
1 + dp[31]
1 + dp[28]
1 + dp[23]
1 + dp[16]
1 + dp[7] λ₯Ό κ³μ°ν΄ κ°μ₯ μμ κ°μ dp[32] μ λ£μ΄μ£Όλ©΄ λλ€.
def solution(num):
dp = [0, 1, 2, 3, 2]
for i in range(5, num + 1):
pivot = 1
tmp = 1_000_000
while pivot ** 2 <= i:
if 1 + dp[i - pivot ** 2] < tmp:
tmp = 1 + dp[i - pivot ** 2]
pivot += 1
dp.append(tmp)
return dp[num]
print(solution(int(input())))
Leave a comment