BOJ/Python

백준 11655번 ROT13 파이썬

띵지니어 2022. 2. 24. 16:41

https://www.acmicpc.net/problem/11655

 

11655번: ROT13

첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.

www.acmicpc.net

 

내 답안

answer = ''
for i in input():
    if i.isupper():
        if (65 <= ord(i) <= 77):
            answer += chr(ord(i) + 13)  # A ~ M
        else:
            answer += chr(ord(i) - 13)  # N ~ Z
    elif i.islower():
        if (97 <= ord(i) <= 109):
            answer += chr(ord(i) + 13)  # a ~ m
        else:
            answer += chr(ord(i) - 13)  # n ~ z
    else:
        answer += i
        
print(answer)

Review

 

ordchr 를 활용하여 아스키코드를 쓰면 쉽게 해결할 수 있는 문제였다.

print(ord('a'))
print(ord('z'))
print(ord('A'))
print(ord('Z'))
print(chr(77))
print(chr(122))

97
122
65
90
M
z