다이나믹 프로그래밍
-
[알고리즘/DP] 백준 1912번: 연속합 - C++알고리즘/백준 2020. 12. 12. 21:59
www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 다이나믹 프로그래밍(DP) 을 이용하였다 #include #include using namespace std; int a[100000], d[100000]; int main() { int n, ans; cin >> n; for (int i = 0; i > a[i]; } d[0] = a[0]; for (int i = 0; i < n; i++) { d[i] = max(a[i], d[i - 1] ..
-
[알고리즘/DP] 백준 11055번: 가장 큰 증가 부분 수열 - C++알고리즘/백준 2020. 12. 12. 21:56
www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net 다이나믹 프로그래밍(DP)을 이용하였다 #include #include using namespace std; int a[1000], d[1000]; int main() { int n, ans = 0; cin >> n; for (int i = 0; i > a[i]; for (int i = 0; i < n; i++) { d[i] ..
-
[알고리즘/DP] 백준 9095번: 1,2,3 더하기 - C++알고리즘/백준 2020. 12. 12. 21:54
www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 다이나믹 프로그래밍을 이용하였다. #include using namespace std; int d[12]; int main() { int T, n; cin >> T; d[1] = 1; d[2] = 2; d[3] = 4; for (int i = 4; i > n; cout