728x90
반응형

문제 : https://codeup.kr/problem.php?id=2002

 

비밀편지

셀던과 레오나드는 암호화화여 문자를 주고 받았다. 암호화하는 방법은 숫자 S 만큼 알파벳을 이동하는 대치 문자를 이용하였다. (알파벳은 대문자만 사용) 여기서 S를 구하는 방법은 S = 3P + K 이

codeup.kr

 

문제 설명

셀던과 레오나드는 암호화화여 문자를 주고 받았다.

암호화하는 방법은 숫자 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
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기