소개
Enigma는 제 2 차 세계 대전에 사용 된 최초의 전기 기계식 로터 암호기 중 하나였습니다. 즉, 단일 문자를 코딩하면 다음 문자의 키가 변경됩니다. 이것은 거대한 키 공간으로 인해 독일인들 에게는 깨지지 않는 것으로 간주 되었습니다. 무차별 강요조차 거의 불가능했습니다. 그러나 Enigma에서 설계 오류가 발생했습니다. 편지를 암호화하면 결코 그 자체로 나타나지 않습니다. 즉, 문자 A
는 문자를 제외한 모든 문자를 암호화 할 수 있습니다 A
.
코드화 된 메시지의 예를 보자.
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
일반적인 독일어 단어는 WETTERBERICHT
영어로 된 날씨 보고서입니다. 위의 프린시 페를 사용하여 단어가 가능한 위치를 결정할 수 있습니다.
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
I
자체로 암호화 할 수 없기 때문에 불가능 합니다. 따라서 한 곳으로 이동합니다.
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
이것은 또한 불가능하기 때문에 다른 장소로 다시 이동합니다.
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
다시는 불가능합니다. 실제로, 가능한 첫 번째 발생 WETTERBERICHT
은 다음과 같습니다.
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
0123456789012345678901234567890123456789012345678901234567890123
^
13
따라서 가능한 첫 번째 발생의 0 인덱스 위치 인 13 을 반환합니다 .
작업
- 코드화 된 메시지와 단어가 주어지면 가능한 첫 번째 색인을 찾으십시오 .
- 기본 대문자 알파벳 문자 만 사용한다고 가정합니다 (
ABCDEFGHIJKLMNOPQRSTUVWXYZ
). - 어떤 선두로부터 찾을 수없는 경우, 출력 어떤 수있는 음의 정수, 문자, 또는 아무것도를 (예를 들어
-1
,X
). - 별도의 줄 바꿈, 목록 또는 기타 항목에서 입력을 인수로 사용할 수 있습니다.
- 이것은 code-golf 이므로 바이트 수가 가장 적은 제출이 승리합니다!
테스트 사례
Input: BHGEFXWFTIUPITHHLPETTTCLOEWOELM, WETTERBERICHT
Output: 13
Input: ABCDEFGHIJKL, HELLO
Output: 0
Input: EEEEEEEEEEEE, HELLO
Output: -1
Input: XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF, DEUTSCHLAND
Output: 11
Input: HKKH, JJJJJ
Output: -1
E
결코 결과가되지 않음을 의미 했습니다 E
. 이것이이 모든 도전에 관한 것입니다.