-
KOI 2019 1차 초등부 2 / 회문 - 17609Algorithm/BOJ 2020. 8. 13. 14:51123456789101112131415161718192021222324252627#include <iostream>using namespace std;int slv(string& s, bool flag) {int end = s.size()/2;for(int i = 0; i<end; ++i) {if(s[i] != s[s.size()-1-i]) {if(flag) return 2;string s1 = s.substr(0, i) + s.substr(i+1, s.size()-i-1);string s2 = s.substr(0, s.size()-i-1) + s.substr(s.size()-i, i);return min(slv(s1, true), slv(s2, true));}}return flag;}int main() {ios_base::sync_with_stdio(0), cin.tie(0);int C;cin >> C;for(int t = 0; t<C; ++t) {string s;cin >> s;cout << slv(s, false) << "\n";}}
cs https://www.acmicpc.net/problem/17609
17609번: 회문
각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다.
www.acmicpc.net
회문
문자열이 대칭인지 확인하다가 한번 어긋나면, 어긋난 문자열을 뺀 부분문자열에 대해 다시 대칭인지 확인하면 문제를 해결 할 수 있습니다.
'Algorithm > BOJ' 카테고리의 다른 글
KOI 2019 1차 중등부 2번 / 직각다각형 - 17611 (0) 2020.08.24 KOI 2019 1차 중등부 1번 / 양팔저울 - 17610 (0) 2020.08.13 UCPC 2020 C / 함수 복원 - 19544 (0) 2020.08.05 UCPC 2020 B / 던전 지도 - 19543 (0) 2020.08.05 UCPC 2020 A / 전단지 돌리기 - 19542 (0) 2020.08.05