https://www.acmicpc.net/problem/11655
문제
소스코드
import sys
s = sys.stdin.readline().rstrip()
result = ""
for i in s:
if i.isupper():
ascii_code = ord(i) + 13
if ascii_code > 90:
result += chr(ascii_code - 26)
else:
result += chr(ascii_code)
elif i.islower():
ascii_code = ord(i) + 13
if ascii_code > 122:
result += chr(ascii_code - 26)
else:
result += chr(ascii_code)
else:
result += i
print(result)
풀이
- 알파벳 대문자와 소문자는 ascii code가 다르기 때문에 분리하여 처리한다.
- 해당 알파벳을 ROT13할 경우 알파벳의 마지막인 Z or z의 ascii code를 넘어가면 알파벳의 개수 26을 빼준다.
- 공백과 숫자는 바꾸지 않고 그대로 결과값에 저장한다.