Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- C++
- 동적계획법
- 그래프
- 코테준비
- hash
- Python
- C
- 프로그래머스
- Lv.2
- BruteForceSearch
- 문제풀이
- 면접질문
- BFS
- 고득점Kit
- Lv.1
- Java
- Algorithm
- 쿠쉬쿠쉬
- 파이썬
- LV.3
- 운영체제
- 알고리즘
- 단지번호붙이기
- 2색칠하기
- 해시
- 이분그래프판별
- 코딩테스트준비
- 코딩테스트
- OS
Archives
- Today
- Total
쿠쿠의기록
16. 제곱수의 합 본문
입력
첫 번째 줄에 N이 주어진다. ( 1 ≤ N ≤ 100,000 )
출력
필요한 제곱 수의 최소 개수를 출력한다.
예제 입력
45
예제 출력
2
예제 입력
38
예제 출력
3
#include <stdio.h>
#include <algorithm>
using namespace std;
const int MAX = 100010;
int n;
int arr[MAX];
int d[MAX];
int main() {
scanf("%d",&n);
for(int i=0;i<=n;i++){
d[i] = i;
}
for(int i=2;i<=n;i++){
//printf("%d\n",i);
for(int j=2;j*j<=i;j++){
d[i] = min(d[i],d[i-j*j]+1);
//printf("%d ",d[i]);
}
//printf("\n\n");
}
printf("%d",d[n]);
return 0;
}
'알고리즘 > L16~17 동적계획법' 카테고리의 다른 글
17. 연속 부분 최대합 L (0) | 2023.06.13 |
---|---|
17. 자원 채취 (0) | 2023.06.12 |
16. 직사각형배치의경우의수 (0) | 2022.03.14 |
16. 버튼누르기 (0) | 2022.03.14 |
16. 카드놀이 (0) | 2022.03.14 |