https://www.acmicpc.net/problem/11655
아스키코드를 이용하여 13을 더하면 된다. 다만 z혹은 Z를 넘어가는 값은 a 혹은 A부터 다시 시작하는 걸로 철리해줘야 한다.
예를 들어보자
o는 아스키 코드 값이 111이다. 111 + 13은 124인데 z인 122를 넘는다. 이런 경우를 처리해 줘야 한다.
o를 97(a의 아스키코드 값)+14로 보고13을 더해주면 97+14+13이다. 여기서 97을 빼주고 남음 값을 26으로 나눈 값의 나머지를 97에 더하면 된다. 97+((97+14)+13-97)%26 = 98인 b가 된다.
from sys import stdin
input = stdin.readline
S = input()
for i in S:
if i.islower():
print(chr(97+(ord(i)+13-97)%26), end = '') #z의 값을 넘으면 a로 돌아가서 계산할 수 있도록 하는 계산
elif i.isupper():
print(chr(65+(ord(i)+13-65)%26), end = '') #Z의 값을 넘으면 A로 돌아가서 계산할 수 있도록 하는 계산
else:
print(i, end = '')