1699-平方和
📚 1699-平方和
平方和
問題を理解する
➡️
dp[12] = 3
n
に繰り返し、1 ~ n
の間の平方数を検索してチェックします.△ソースコードからすれば、分かりやすいはずです.私のソース
n = int(input())
dp = []
for idx in range(n + 1):
dp.append(idx)
for i in range(2, n+ 1):
for j in range(2, i+1):
if j * j > i:
break
else:
dp[i] = min(dp[i], dp[i - j * j] + 1)
print(dp[n])
リファレンスソース
# 참고하여 수정한 코드
n = int(input())
dp = [0] * (n + 1)
for i in range(1, n+ 1):
dp[i] = i
j = 1
while j * j <= i:
dp[i] = min(dp[i], dp[i - j * j] + 1)
j += 1
print(dp[n])
時間の複雑さ
Reference
この問題について(1699-平方和), 我々は、より多くの情報をここで見つけました https://velog.io/@chang626/1699-제곱수의-합テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol