[python] 백준 11655번

hyeo71·2023년 5월 31일
0

백준

목록 보기
16/24

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을 빼준다.
  • 공백과 숫자는 바꾸지 않고 그대로 결과값에 저장한다.

0개의 댓글