RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R00935

열쇠말 시프트 암호

Bronze II 브론즈 II
난이도
2s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 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\)가 주어진다.

둘째 줄에 평문이 주어진다. 둘 다 영어 소문자로만 이루어진다.

출력 형식

암호문을 출력한다.

예제 1
입력
abc
aaaaaa
출력
abcabc
설명

열쇠말 abc는 시프트 \(0,1,2\)의 반복이므로 a들이 차례로 a, b, c, a, b, c가 된다.

예제 2
입력
b
zoo
출력
app
설명

모든 글자를 \(1\)칸씩 민다. z는 한 바퀴 돌아 a가 된다.

힌트

막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

열쇠말 시프트 암호

개요
출제자 난이도 Bronze II 브론즈 II 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

열쇠말 시프트 암호

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8