문제: icpc.me/8892
k개의 단어가 주어질 때 두 단어를 조합하여 팰린드롬이 되는 경우 출력하는 문제이다.
string 배열에 모든 단어들을 받아준 뒤 검사해주면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <cstdio> #include <algorithm> #include <string> #include <iostream> using namespace std; int t, k, f; string a[101]; bool isPal(string x) { for (int i = 0; i < x.length(); i++) { if (x[i] != x[x.length() - 1 - i]) return 0; } return 1; } int main() { scanf("%d", &t); while (t--) { f = 0; scanf("%d", &k); for (int i = 0; i < k; i++) cin >> a[i]; for (int i = 0; i < k; i++) { for (int j = 0; j < k; j++) { if (i == j)continue; string z = a[i] + a[j]; if (isPal(z)) { cout << z << "\n"; f = 1; break; } } if (f)break; } if (!f)puts("0"); } return 0; } | cs |
'알고리즘 관련 > BOJ' 카테고리의 다른 글
BOJ)9413 제주도 관광 (0) | 2017.03.13 |
---|---|
BOJ)2311 왕복 여행 (0) | 2017.03.13 |
BOJ)13576 Prefix와 Suffix (0) | 2017.03.13 |
BOJ)13506 카멜레온 부분 문자열 (0) | 2017.03.12 |
BOJ)1585 경찰 (0) | 2017.03.11 |