[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