암호문에 26가지 시저 이동을 모두 적용해 보고, 그중 평문이 사전 단어를 부분 문자열로 포함하는 이동을 찾는다.
쉬움3문자열완전 탐색구현면접 대비아직 제출이 없습니다시간 제한1초메모리 제한64 MB로마의 장군 카이사르는 로마군의 작전을 적이 알아채지 못하게 하려고 암호를 썼다. 방법은 간단하다. 문장에 있는 알파벳을 모두 몇 칸 뒤의 알파벳으로 바꾼다. 아래 표는 모든 글자를 17칸 뒤의 알파벳으로 바꿨을 때 각 글자가 어떤 알파벳이 되는지 보여 준다.

원문: a b c d e f g h i j k l m n o p q r s t u v w x y z
암호: r s t u v w x y z a b c d e f g h i j k l m n o p q
이 방법으로 alea iacta est를 암호화하면 rcvr zrtkr vjk가 된다.
당신은 페르시아 군대의 장군으로서 카이사르의 암호를 해독해야 한다. 카이사르가 문장을 암호화하는 방법은 알고 있지만 몇 칸 뒤의 알파벳으로 바꾸는지는 모른다. 다행히 부하가 로마어 사전을 가져왔다. 전령이 나르는 문장에는 보편적인 단어가 들어가기 마련이라 사전에 실린 단어가 반드시 하나는 있다. 따라서 해독한 문장에는 사전에 나오는 단어가 적어도 하나 등장해야 한다.
카이사르의 암호문과 사전이 주어질 때, 암호를 해독하는 프로그램을 작성하여라.
첫째 줄에 암호문이 주어진다. 암호문은 소문자로만 이루어진 길이 100 이하의 문자열이다.
둘째 줄에 사전에 있는 단어의 수 N이 주어진다. (1≤N≤20)
셋째 줄부터 N개의 줄에 사전에 있는 단어가 한 줄에 하나씩 주어진다. 모든 단어는 소문자로만 이루어진 길이 20 이하의 문자열이다.
암호문을 해독한 원문을 출력한다. 해독 결과가 한 가지뿐인 입력만 주어진다.