1. 문제링크https://www.acmicpc.net/problem/13398 2. 해설이 문제는 연속합 1과는 다르게 차원을 하나 더 설정해서 풀어줘야 한다.내가 지금까지 더한 값이 하나를 빼고 더한 것인가 아니면 빼지 않은 채로 더한 것인가를 따로 저장하면서 다녀야한다. 1. 처음 초기화를 한다.2. dp[0]은 빼지 않고 더한 값, dp[1]은 빼고 더한 값들 중 최적을 저장하고 다닌다.3. dp 배열 안에 가장 큰 값을 출력한다. 3. 소스코드 #include #include #define MAXNUM 100100 using namespace std; int arr[MAXNUM]={0}; int dp[2][MAXNUM]={0}; int main() { int n, ans= -1010; scanf..
1. 문제링크https://www.acmicpc.net/problem/10845 2. 해설이 문제는 간단하게 큐를 구현하는 문제이다. 3. 소스코드 #include using namespace std; class queue{ private: int q[10001]={0}; int head=0, tail=0; public: void push(int x){ q[tail++] = x; } void pop(){ head++; } int front(){ return q[head]; } int back(){ return q[tail-1]; } int size(){ return tail - head; } int empty(){ return (tail - head == 0) ? 1 : 0; } }; int main()..