아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

팰린드롬

면접 대비

시간 제한1초메모리 제한256 MB

요약
문자열이 주어질 때, 원하는 위치에 문자를 삽입해 팰린드롬으로 만들기 위해 필요한 최소 삽입 횟수를 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 문자열, 투 포인터, 재귀
정답자
아직 제출이 없습니다

문제

팰린드롬(palindrome)은 앞에서부터 읽으나 뒤에서부터 읽으나 똑같은 대칭 문자열이다. 문자열이 하나 주어질 때, 문자를 몇 개 삽입하여 이 문자열을 팰린드롬으로 만들 수 있다. 삽입해야 하는 문자의 최소 개수를 구하는 프로그램을 작성하여라.

예를 들어 문자열 "Ab3bd"는 문자 2개를 삽입하여 "dAb3bAd" 또는 "Adb3bdA"와 같은 팰린드롬으로 만들 수 있으며, 1개 이하의 문자를 삽입해서는 팰린드롬으로 만들 수 없다. 따라서 이 경우의 답은 2이다.

삽입하는 문자는 문자열의 어느 위치에든 넣을 수 있다.

입력

첫째 줄에 문자열의 길이 NN (3≤N≤50003 \le N \le 5000)이 주어진다. 둘째 줄에 길이가 NN인 문자열이 주어진다. 문자열은 알파벳 대문자 'A'–'Z', 소문자 'a'–'z', 숫자 '0'–'9'로 이루어진다. 대문자와 소문자는 서로 다른 문자로 구분한다.

출력

첫째 줄에 팰린드롬으로 만들기 위해 삽입해야 하는 문자의 최소 개수를 출력한다.

예제1

  1. 예제 1

    입력
    5
    Ab3bd
    
    예상 출력
    2