백준282 백준 9252 C++ - LCS 2 필자: LCS의 정의를 이해하는데 시간이 걸렸다. 공부해보니 순서대로 각 두 문자열의 가장 긴 공통요소를 구하는 뜻이다. 또한 문제 유형이 DP인걸 이해하는데도 시간이 걸렸다. [핵심 사고 ] 문자가 같으면 DP[i][j]= DP[i-1][j-1] +1 왼쪽 위에서 하나 더해준다. 문자가 다르면 DP[i][j] = max(DP[i-1][j], DP[i][j-1]) 왼쪽 혹은 위쪽중 큰 값을 저장한다. #include #include #include #include using namespace std; int N; int D[1001][1001]; string A, B; vector Path; void getText(int r, int c); int main(void) { cin >> A >> B; for.. 2024. 2. 13. 백준 c++ 13398 - 연속합 2 https://www.acmicpc.net/problem/13398 13398번: 연속합 2 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 필자 처음 사고과정 : DP문제가 이 문제의 해결 KEY다 -> D[idx] 마다 최댓값을 저장하려 했지만 문제의 조건중에 자유롭게 하나의 수를 제거할 수 있다. 라는 이유로 이 방식은 포기했다. 해결과정 : 이 문제의 핵심은 위의 그림처럼 X표시 되는 모든 구간을 조사하여 최댓값이 되는 값을 구해야 되는 문제다. 이러한 이유로 L벡터와 R벡터를 만들었다. L 벡터에는 왼쪽부터 시작하여 배열의 마지막.. 2024. 2. 13. 이전 1 ··· 68 69 70 71 다음