만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

팰린드롬 개수 구하기 (Small)

면접 대비

시간 제한2초메모리 제한512 MB

요약
길이가 최대 30인 문자열에서 서로 다른 위치를 고른 부분수열 중 회문인 것의 개수를 센다.
난이도

보통10점 중 7점

유형
동적 계획법, 문자열, 조합론, 구현
정답자
아직 제출이 없습니다

문제

팰린드롬(palindrome)은 앞에서부터 읽으나 뒤에서부터 읽으나 같은 단어이다. 'aba'나 'a'는 팰린드롬이고, 'abaccbcb'나 'anavolimilana'는 팰린드롬이 아니다.

승수는 주어진 문자열의 부분수열 가운데 팰린드롬인 것이 몇 개인지 알고 싶다. 빈 부분수열은 세지 않는다. 부분수열은 고른 위치의 집합으로 구별하므로, 글자가 같더라도 고른 위치가 다르면 다른 부분수열로 센다.

예를 들어 'abb'의 부분수열은 'a', 'b', 'b', 'ab', 'ab', 'bb', 'abb'이고, 이 가운데 팰린드롬은 'a', 'b', 'b', 'bb'로 4개이다.

문자열이 주어질 때 팰린드롬인 부분수열의 개수를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 문자열 SS가 주어진다. SS의 길이는 1 이상 30 이하이고, SS는 알파벳 소문자로만 이루어져 있다.

출력

SS의 부분수열 가운데 팰린드롬인 부분수열의 개수를 출력한다.

예제1

  1. 예제 1

    입력
    abb
    
    예상 출력
    4