문제 링크입니다: https://www.acmicpc.net/problem/9933
문자열이 팰린드롬인 경우는 한번만 등장한다는 함정이 있었던 문제였습니다.
팰린드롬이 답이 아닌 경우는 map을 통해 뒤집혔던 비밀번호가 나왔는지 확인할 수 있습니다!
#include <iostream>
#include <string>
#include <algorithm>
#include <map>
using namespace std;
map<string, bool> visited;
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
for (int i = 0; i < N; i++)
{
string s;
cin >> s;
string temp = s;
reverse(temp.begin(), temp.end());
//팰린드롬인 경우 혹은 기존에 뒤집은 문자열이 나온 경우
if (s == temp || visited.count(temp))
{
cout << s.length() << " " << s[s.length() / 2] << "\n";
break;
}
else
visited[s] = true;
}
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 1919번 애너그램 만들기 (2) | 2018.10.27 |
---|---|
백준 2857번 FBI (0) | 2018.10.27 |
백준 5218번 알파벳 거리 (0) | 2018.10.27 |
백준 5598번 카이사르 암호 (0) | 2018.10.27 |
백준 11656번 접미사 배열 (0) | 2018.10.27 |