DHistory
[Baekjoon] DP - 1699 제곱수의 합 본문
문제
풀이
n = int(input())
def solution(n):
d = list(range(n + 1))
for i in range(1, n + 1):
for j in range(int(i ** .5), 0, -1):
if i == j * j:
d[i] = 1
elif i > j * j:
d[i] = min(d[i - j * j] + d[j * j], d[i])
return d[n]
print(solution(n))
채점 결과
'Computer Science > Algorithm' 카테고리의 다른 글
[Baekjoon] DP - 15988 1, 2, 3 더하기 3 (0) | 2023.09.25 |
---|---|
[Baekjoon] DP - 11722 가장 긴 감소하는 부분 수열 (0) | 2023.09.25 |
[Baekjoon] DP - 11051 이항 계수 2 (0) | 2023.09.25 |
[Baekjoon] DP - 11055 가장 큰 증가하는 부분 수열 (0) | 2023.09.25 |
[Baekjoon] DP - 1912 연속합 (0) | 2023.09.25 |