-
(dp)1463 1로 만들기/9095 1,2,3 더하기Algorithm/baekjoon 2022. 2. 22. 17:03
1.1463 1로 만들기
https://www.acmicpc.net/problem/1463
1463번: 1로 만들기
첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.
www.acmicpc.net
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> #include<vector> #include<algorithm> #include<queue> using namespace std; int d[1000001]; int main() { cin.tie(NULL); cin.sync_with_stdio(false); cout.tie(NULL); int N; cin >> N; d[1] = 0; for (int i = 2; i <= N; i++) { d[i] = d[i - 1] + 1; if (i % 2 == 0) d[i]=min(d[i / 2] + 1, d[i]); if (i % 3 == 0)d[i]=min(d[i / 3] + 1, d[i]); } cout << d[N]; return 0; }
2.9095 1,2,3 더하기
https://www.acmicpc.net/problem/9095
9095번: 1, 2, 3 더하기
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
www.acmicpc.net
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> #include<vector> #include<algorithm> #include<queue> using namespace std; int d[11]; int main() { cin.tie(NULL); cin.sync_with_stdio(false); cout.tie(NULL); d[1] = 1; d[2] = 2; d[3] = 4; int T; cin >> T; for (int i = 0; i < T; i++) { int n; cin >> n; for (int s = 1; s <= n; s++) { if (s == 1 || s == 2 || s == 3) continue; d[s] = d[s - 1] + d[s - 2] + d[s - 3]; } cout << d[n]<<"\n"; } return 0; }
'Algorithm > baekjoon' 카테고리의 다른 글
(이진 검색 트리)7662 이중 우선순위 큐 (0) 2022.02.25 (bfs/dfs)4963 섬의 개수 (0) 2022.02.22 1260 DFS와 BFS/11724 연결요소의 개수 (0) 2022.02.20 (재귀)1629 곱셈/1074 Z (0) 2022.02.19 1978 소수 찾기/2609 최대공약수와 최소공배수 (0) 2022.02.19