백준 1940 C++ #include using namespace std;int n; //> n; cout 간단하게 생각할 수 있는 문제였다. 2025. 3. 27. 백준 11066 C++ #include using namespace std;int testCase;int n;int arr[510];int sum[510];int dp[510][510];int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> testCase; while (testCase--) { cin >> n; for (int i = 1; i > arr[i]; //dp[i][i] = arr[i]; sum[i] = sum[i - 1] + arr[i]; //누적합 } for (int len = 1; len 처음엔 (dp[start][mid] + dp[mid+1][end] ) * 2라고 생각했는데이건 전체의 합을 나타내야하는데 dp는 최.. 2025. 3. 26. 백준 11049 C++ 와.. 어려웠다 이 문제#include using namespace std;int n;pair arr[510];int dp[510][510];int main() { cin >> n; for (int i = 1; i > arr[i].first >> arr[i].second; } for (int len = 1; len len으로 총 구할 범위를 정해주고start로 구할 범위의 시작점을 정해준다.그리고 end = len + start이니까 start 부터 len까지의 연산 횟수 최소값을 저장하는 dp가dp[start][end]이다.mid는 어느 값이 최소인지 모르기에 start부터 end는 포함하지 않고 (mid+1을 하기에 end는 포함 X)모든 구역을 돌면서 최소값을 구한다. 2025. 3. 26. 백준 15468 C++ 처음에는 날짜를 골라서 fill로 다 초기화할까 생각했는데 너무 비효율적인 것 같고결국 이전값 중에서 최대값과 여기까지 쌓인값 + cost 뭐가 큰지 비교해야해서그냥 이전값 중 최대값을 계속 갱신을 했다. 이전 값 중 최대값과 현재값을 비교해야하면 이전 값 중 최대값을 변수로 하나 지정해서계속 최대값을 갱신하면 되겠다.#include using namespace std;typedef long long ll;int n; //1 p[1500010]; //걸리는 날짜, 받는 돈int dp[1500010];int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; int result = 0; int cur = 0; int day,.. 2025. 3. 15. 이전 1 2 3 4 5 ··· 23 다음