반응형

어떤 문자가 추가되어야 하는지가 아닌 단순 몇글자가 추가되어야 하는지를 반환하기 때문에 난이도는 낮다. 혹시라도 어려움을 느낀다면 배열을 그리고 직접 손으로 따라가보면서 하는 것도 좋은 방법이다.


#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

+ Recent posts