728x90
반응형
문제 : https://codeup.kr/problem.php?id=2002
문제 설명
셀던과 레오나드는 암호화화여 문자를 주고 받았다.
암호화하는 방법은 숫자 S 만큼 알파벳을 이동하는 대치 문자를 이용하였다. (알파벳은 대문자만 사용)
여기서 S를 구하는 방법은 S = 3P + K 이다.
K는 입력으로 주어지고, P는 문자열의 각 자릿수값이다.
예를 들어, K=3이고, ZOOM이라는 문자를 암호화한다면,
S = 3*1 + 3 = 6 , Z ==> F
S = 3*2 + 3 = 9 , O ==> X
S = 3*3 + 3 = 12 , O ==> A
S = 3*4 + 3 = 15 , M ==> B
이다.
이 문제에서는 암호화된 문자를 원문으로 바꾸는 것이 문제이다.
즉, 암호문 FXAB가 입력되면 원문 ZOOM을 출력해야한다.
입력
첫째줄에 K값이 입력된다. (K < 10)
둘째줄에 20글자이내의 대문자로 이루어진 알파벳이 입력된다.
출력
원문을 출력한다.
입력 예시
3
FXAB
출력 예시
ZOOM
코드 :
# include <stdio.h>
int main()
{
int k,s,p;
char c;
scanf("%d\n",&k);
for(p = 1; scanf("%c",&c) != EOF; p++)
{
s = 3 * p + k;
printf("%c",'A'+(26*26 + c - 'A' - s)%26);
}
return 0;
}
728x90
반응형
최근댓글