Dolphins의 HelloWorld
[백준]Baekjoon1699(Dynamic Programming) 본문
문제링크 : https://www.acmicpc.net/problem/1699
#include <iostream> #include <algorithm> #include <cmath> #define SIZE 100001 using namespace std; int memo[SIZE]; int main() { long long N; scanf("%lld", &N); for (int i = 1; i <= N; i++) { memo[i] = i; //1의 제곱의 조합으로 이루어진 항의 갯수가 최댓값 for (int j = 1; j*j <= i; j++) { //j제곱을 뺀 항중에서 최소갯수를 가진 것을 골라서 1을 더한것이 i항의 최소갯수 if (memo[i - j*j] + 1 < memo[i]) memo[i] = memo[i - j*j] + 1; } } cout << memo[N] << '\n'; }
'Algorithm > baekjoon문제풀이' 카테고리의 다른 글
[백준]Baekjoon2751(정렬) (0) | 2018.08.11 |
---|---|
[백준]Baekjoon9461(Dynamic Programming) (0) | 2018.08.07 |
[백준]Baekjoon2579(Dynamic Programming) (0) | 2018.08.06 |
[백준]Baekjoon1912 (0) | 2018.08.06 |
[백준]Baekjoon11054(Dynamic Programming)(LIS활용) (0) | 2018.08.02 |
Comments