#include <bits/stdc++.h>
using namespace std;
int n;
string s;
string a[24];
int main(){
cin >> s;
cin >> n;
for(int i = 0; i < n; i++){
cin >> a[i];
}
for(int i = 0; i < 26; i++){
for(int j = 0; j < n; j++){
if(s.find(a[j]) != string::npos){
cout << s << '\n';
return 0;
}
}
for(int j = 0; j < s.length(); j++){
s[j] = (s[j] - 'a' + 1) % 26 + 'a';
}
}
}
100 이하의 문자열, 길이가 20이하인 20개의 사전 단어 수 즉 다 해봐도 문제가 없다.
모든 데이터에 대해서 답이 한 가지인 경우만 들어오니까
사전의 단어를 암호문에서 다 검사해본다.
만약 암호문에 사전의 단어가 있다면 해당 암호문을 출력한다.
없으면 암호문을 전부 돌며 1씩 증가시켜준다.
이렇게 하는게 맞나? 라는 의심에 잘 풀지 못했던 문제다.
그냥 했으면 맞았는데 문제 풀 때 너무 신중하게 푸려다 보니 쫄아버린것 같다.
알파벳의 갯수만큼 반복문을 돌면 되는데 해당 숫자 설정을 잘못해서 2번 틀렸다.