백준 1509번

1 · · Jan. 29, 2024, 2:44 a.m.
백준 1509번 오늘 풀어본 문제는 백준의 1509번 문제1이다. 문제 풀이에 사용한 언어는 C++ 이다. solved.ac 기준 CLASS 문제 정보 이 문제의 내용과 조건은 다음과 같다. 문제 세준이는 어떤 문자열을 팰린드롬으로 분할하려고 한다. 예를 들어, ABACABA를 팰린드롬으로 분할하면, {A, B, A, C, A, B, A}, {A, BACAB, A}, {ABA, C, ABA}, {ABACABA}등이 있다. 분할의 개수의 최솟값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 문자열이 주어진다. 이 문자열은 알파벳 대문자로만 이루어져 있고, 최대 길이는 2,500이다. 출력 첫째 줄에 팰린드롬 분할의 개수의 최솟값을 출력한다. 풀이과정 1번째 시도 문제를 보고 DP 문제라는 것을 알 수 있었다. 결국 찾아낸 해결 방식은 다음과 같다. checkPalindrome 이라는 2차원 배열을 만들어 각 부분 문자열들이 회문인지를 저장한다. dp 1차원 배열을 만들어 ...