반응형
문제
https://www.acmicpc.net/problem/17626
풀이
DP로 풀이할 수 있는 문제
$f(1) = 1^2$ 이고, $f(2) = 1^2 + 1^2$로 나타낼 수 있다.
최대 갯수는 $f(n) = f(n - 1) + 1$으로 볼 수 있다.
$f(4) = 2^2$ 같은 경우에는 $2^2$를 어떻게 도출할 수 있을지 생각해보자.
이렇게 생각해보면 되지 않을까?
4는 $2^2$ 이므로, $f(4) = f(4 - 2^2) + 1$
n이 어떤 수의 제곱보다 크거나 같다면 n에서 해당수를 뺀 값에서 +1만큼 경우의 수를 더해주어 n을 만들 수 있다.
$f(n) = min(f(n-1)+1, f(n-i*i)+1$
소스코드
후기
기본적인 DP 문제
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 21736 헌내기는 친구가 필요해 (Swift) (0) | 2025.01.20 |
---|---|
[BOJ] 백준 18111 마인크래프트 (Swift) (0) | 2025.01.20 |
[BOJ] 백준 11727 2xn 타일링 2 (Swift) (0) | 2025.01.17 |
[BOJ] 백준 9375 패션왕 신해빈 (Swift) (0) | 2025.01.16 |
[BOJ] 백준 1074 Z (Swift) (0) | 2025.01.15 |