문제 코드 #include #include #include using namespace std; int dp[1500100] = { 0, }; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; int section_max = 0; cin >> n; for (int i = 1; i > time >> pay; dp[i + time - 1] = max(section_max + pay, dp[i + time - 1]); if (dp[i] > section_max) section_max = dp[i]; } int max = *max_element(dp, dp + n + 1); cout
알고리즘/알고리즘_PS
문제 코드 #include #include using namespace std; int dp[1001] = { 0, }; int arr[1001] = { 0, }; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); fill(dp, dp + 1001, 1); int n = 0; cin >> n; for (int i = 0; i > arr[i]; } for (int i = 0; i < n; i++) { for (int j = 0; j dp[4](현재 2)기 때문에 dp[4]의 값이 3으로 갱신되며 dp[4]값이 정해지고, i값이 1 증가하면서 로직이 반복되며 dp 테이블이 채워진다. 위와 ..
문제 https://www.acmicpc.net/problem/11727 코드 #include #include using namespace std; int dp[1002] = { 0, }; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; dp[1] = 1; dp[2] = 3; for (int i = 3; i
문제 풀이 바킹독 알고리즘의 도움을 받아 푼 1753 최단경로를 풀고 바로 푼 문제. 매우 기본적인 다익스트라 알고리즘 !! 조금 추가적인 부분은 도착지를 제외한 모든 지점에서의 최단거리를 구해야하고, 도착지에서 출발지까지의 최단거리도 더해야한다는것. 실제로는 모든 정점에서 다른 정점까지의 최단 거리 테이블을 만들면 되는 문제였다. #include #include #include using namespace std; int INF = 0x7FFFFFFF; int d[1001][1001]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m, x; int max_time = 0; vector graph[..