Coding Test/백준
[C++] 백준 1699 - 제곱수의 합
Junchoi
2020. 8. 10. 14:00
문제 링크
https://www.acmicpc.net/problem/1699
자연수 n의 가능한 제곱수의 합은
먼저 1² 을 n번 더하는 경우가 모든 자연수에 적용가능합니다.
다음은 n보다 작은 제곱수(1², 2², 3² ...) 중 n - 제곱수번째의 합 + 1이 될 수 있습니다.
n을 10으로 예를들면 1²을 10번 더하는 방법이 있습니다.
10보다 작은 제곱수는 1², 2², 3²으로 총 3가지가 있습니다.
1. 10 - 1² = 9번째의 값은 3² 이므로 1² 하나만 더해주는 방법이 가능합니다.
2. 10 - 2² = 6번째의 값은 2²+1² 이므로 2² 하나만 더해주는 방법이 가능합니다.
3. 10 - 3² = 1번째의 값은 1² 이므로 3² 하나만 더해주는 방법이 가능합니다.
이렇게 구한 값들 중 최소값을 구해주면 됩니다.
구현 코드