간단한 암호화
시간 제한1초메모리 제한128 MB
메시지에서 알파벳이 아닌 문자를 제거하고, 키워드의 각 열 글자에 해당하는 알파벳 순서만큼 열 단위로 밀어서 암호화한다.
문제
메시지를 암호화하는 가장 간단한 방법 중 하나는 글자를 일정한 칸수만큼 밀어 쓰는 것입니다.
예를 들어 원문의 각 글자를 칸씩 민다면 A는 암호문에서 F가 됩니다. (B G, C H, …, T Y, U Z, V A, …, Z E) 알파벳의 끝을 넘어가면 다시 A로 돌아옵니다. 복호화하려면 같은 칸수만큼 반대로 밀면 됩니다.
조금 더 까다로운 방식은 밀어 쓸 칸수를 키워드로 정합니다. 키워드가 ACT라고 합시다. 암호화하려면 먼저 원문에서 알파벳이 아닌 문자를 모두 제거한 뒤, 남은 글자를 키워드 길이와 같은 너비의 격자에 채워 넣습니다. 다음 메시지를 암호화한다고 합시다.
BANANA & PEEL
이 메시지를 키워드 ACT를 머리글로 하는 격자로 나타내면 다음과 같습니다.
이제 각 글자를 밀어 쓰되, 미는 칸수는 그 열의 머리글에 놓인 키워드 글자에 따라 달라집니다. 머리글이 A이면 그 열의 글자는 밀지 않고, B이면 칸씩 밀며, 이런 식으로 알파벳 순서에 따라 밀어 씁니다. 이 예시에서 세 번째 열은 T가 알파벳의 번째 글자이므로 칸씩 밀립니다.
암호화된 결과는 다음과 같습니다.
키워드와 암호화할 문자열을 입력받아 문자열을 암호화하는 프로그램을 작성하세요. 키워드는 글자를 넘지 않으며, 메시지는 항상 대문자로만 주어집니다.
입력
첫째 줄에 키워드가 주어진다. 둘째 줄에 암호화할 메시지가 주어진다. 키워드의 길이는 글자를 넘지 않으며, 메시지 전체 길이도 글자를 넘지 않는다.
출력
암호화된 메시지를 한 줄에 출력한다.