열쇠말 시프트 암호
의견: 0
한 칸씩 똑같이 미는 암호는 너무 쉽게 풀린다. 그래서 단비는 열쇠말을 쓰기로 했다. 열쇠말의 글자 a, b, c, …, z는 각각 시프트 \(0, 1, 2, \dots, 25\)를 뜻한다.
평문의 \(i\)번째 글자(\(1\)번부터)는 열쇠말의 \(((i-1) \bmod |K|) + 1\)번째 글자가 뜻하는 만큼 알파벳에서 뒤로 민다. z를 넘어가면 a로 돌아온다. 즉 열쇠말을 평문 위에 반복해서 늘어놓고 글자별로 시프트하는 것이다.
열쇠말과 평문이 주어지면 암호문을 출력하여라.
\(1 \le |K| \le 10\), 평문의 길이는 \(1\) 이상 \(1\,000\) 이하이다. 모두 영어 소문자이다.
첫째 줄에 열쇠말 \(K\)가 주어진다.
둘째 줄에 평문이 주어진다. 둘 다 영어 소문자로만 이루어진다.
암호문을 출력한다.
abc
aaaaaa
abcabc
열쇠말 abc는 시프트 \(0,1,2\)의 반복이므로 a들이 차례로 a, b, c, a, b, c가 된다.
b
zoo
app
모든 글자를 \(1\)칸씩 민다. z는 한 바퀴 돌아 a가 된다.
막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.
riseoj 작성
출처 Original
평가 및 의견
열쇠말 시프트 암호
Log in to rate problems.
아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.
풀이 제출
열쇠말 시프트 암호