CodingTest/BOJ
[BOJ 1699] 백준 제곱수의 합 풀이 - C++
황수진
2021. 9. 30. 20:27
사용언어 : C++
문제풀이
* dynamic programming 이용하기
자세한 풀이 : https://developing-soosoo.tistory.com/32
[BOJ 17626] 백준 Four Squares 풀이 - C++
사용언어 : C++ 문제풀이 * dynamic programming 이용하기 * int형 배열인 arr에 값 저장 * 순차적으로 접근 ex) arr[26] arr[1]+arr[25], arr[4]+arr[22], arr[9]+arr[15], arr[16]+arr[10], arr[25]+arr[1..
developing-soosoo.tistory.com
전체코드
#include<iostream>
#include<algorithm>
using namespace std;
int N;
int arr[100001];
int main() {
cin >> N;
arr[1] = 1;
int i = 0;
for ( i = 2; i <= N; i++) {
int tmp = 100000;
for (int j = 1; j*j <= i; j++) {
tmp = min(tmp, arr[i - j * j] + 1);
}
arr[i] = tmp;
}
cout << arr[N];
}
총평
거의 같은 문제인 four squares를 풀자마자 풀어서 어려움 없이 풀 수 있었다
문제 출처
https://www.acmicpc.net/problem/1699
1699번: 제곱수의 합
어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다
www.acmicpc.net