반응형

https://www.acmicpc.net/problem/1254

 

1254번: 팰린드롬 만들기

동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는

www.acmicpc.net

 

abc가 있으면,

abcb

abcba

또는,

abca

abcba

위와 같은 방법으로 문자를 덧붙여나가며 팰린드롬인지 확인해주었습니다.

 

#include <iostream>
using namespace std;

string str, str1, str2;
int cnt = 0;

bool isPalindrome(string& s) {
	for (int i = 0; i < s.length() / 2; i++)
		if (s[i] != s[s.length() - 1 - i]) return false;
	return true;
}

int main() {
	cin >> str;
	str1 = str2 = str;
	while (!isPalindrome(str1) && !isPalindrome(str2)) {
		str1 = str1 + str[str.length() - 2 - cnt];
		str2 = str + str[cnt] + str2.substr(str2.length() - cnt);
		cnt++;
	}
	cout << str.length() + cnt;
}
반응형

'Algorithm' 카테고리의 다른 글

백준 1037 : 약수  (0) 2021.11.19
백준 1934 : 최소공배수  (0) 2021.11.19
백준 1464 : 뒤집기 3  (0) 2021.11.19
백준 4358 : 생태학  (0) 2021.11.19
백준 1347 : 미로 만들기  (0) 2021.11.19

+ Recent posts