n = input()
res = ''
for i in range(len(n)):
if n[i] == ' ' or ord(n[i]) < ord('A'):
res += n[i]
else:
if ord(n[i]) + 13 > 122:
res += chr(96 + (ord(n[i]) + 13) - 122)
elif ord(n[i]) + 13 > 90 and ord(n[i]) < 91:
res += chr(64 + (ord(n[i]) + 13) - 90)
else:
res += chr(ord(n[i]) + 13)
print(res)
ord는 파이썬 문자열을 아스키코드로 바꿔주는것이다.
아스키코드 표는
출처
그래서 ord(문자)+13 >90 , > 122 일때 두가지경우에는 a,A에서 더해야 하니까
두개의 조건을 넣어주고
공백 , 숫자일경우에는 그냥 넘어가야하니 ord해서 65보다 작을경우 continue를 넣어서 넘어갔다.
처음에는 ord()+13 > 90 만 넣으니까 소문자에서 체크를 모두 해버리는 오류가 발생했는데 < 91 , 91보다 작을경우를 넣어주니까 해결되었다.
문자열 너무 귀찮다.