반응형
어떤 문자가 추가되어야 하는지가 아닌 단순 몇글자가 추가되어야 하는지를 반환하기 때문에 난이도는 낮다. 혹시라도 어려움을 느낀다면 배열을 그리고 직접 손으로 따라가보면서 하는 것도 좋은 방법이다.
#include <iostream> #include <string> #include <algorithm> using namespace std; /* * 회문 알고리즘 * 임의의 문자열s로 회문을 만든다. * 문자열 s뒤에 0개 이상의 숫자를 추가해 회문을 생성하려고 한다. * 가장 짧은 회문의 길이를 return */ int find(string s) { cout<<s.size()<<endl; for(int i=s.size(); ; i++) { bool breakFlag=true; for(int j=0; j<s.size(); j++) { if((i-j-1) < s.size() && s[j] != s[i-j-1]) { breakFlag=false; break; } } if(breakFlag) return i; } } int main(void) { cout<<find("abab")<<endl;
return 0; } |
반응형
'Algorithm' 카테고리의 다른 글
[BOJ 2606] 바이러스 (0) | 2018.12.28 |
---|---|
[BOJ 2583] 영역구하기 (0) | 2018.12.28 |
[TopCoder 전체탐색] 암호(Cryptography) (0) | 2018.12.20 |
[TopCoder 시뮬레이션] 키위주스(KiwiJuiceEasy) (0) | 2018.12.19 |
[BOJ 2839] 설탕배달 (0) | 2018.12.18 |