풀이
1. substr에 대해 isPalindrom을 통해 팰린드롬인지 확인
2. 팰린드롬을 찾았을 경우 원래 문자열 크기에 인덱스만큼 더해준다
리뷰
1. 오른쪽 인덱스를 고정하고, 왼쪽 인덱스를 하나씩 밀어가며 비교하는 코드를 제출했으나 실패~, 중간에 같은 문자가 나와버리면 오답이 되었다.
2. 기존 문자에서 왼쪽 인덱스를 하나씩 밀어가면서 이미 팰린드롬이 완성되는 문자열을 찾는 것이 중요했다.
3. 팰린드롬이 아닌 문자에 대해서만 문자를 추가 해주면 되기 때문!!...
#include <iostream>
#include <string>
using namespace std;
string s;
int answer = 0;
bool isPalindrom(string str)
{
int cnt = str.size()/2;
for(int i=0; i<cnt; i++){
if(str[i]!=str[str.size()-1-i]){
return false;
}
}
return true;
}
int main()
{
freopen("1254.txt", "r", stdin);
cin>>s;
answer = s.size()*2-1;
for(int i=0; i<s.size(); i++){
string temp = s.substr(i, s.size()-i);
cout << temp << endl;
if(isPalindrom(temp)){
answer = s.size()+i;
break;
}
}
cout<<answer<<"\n";
return 0;
}
'백준' 카테고리의 다른 글
[C++] 백준 2839 설탕배달 DP (0) | 2023.01.16 |
---|---|
[C++] 백준 14502 연구소, Brute-Force, BFS (Gold 4) (0) | 2023.01.15 |
[C++] 백준 11724번 연결 요소의 개수 (Silver 2) (0) | 2023.01.15 |
[C++] 백준 2667번 단지 붙이기 (Silver 1) (0) | 2023.01.15 |
[C++] 백준 1032번: 명령 프롬프트 (0) | 2023.01.15 |