몽상실현개발주의

[BOJ] 11655 / ROT13 / Python 파이썬 본문

Algorithm PS/BOJ

[BOJ] 11655 / ROT13 / Python 파이썬

migrationArc 2021. 5. 26. 00:34

[BOJ] 11655 / ROT13 / Python 파이썬

[BOJ] 11655 / ROT13 / Python 파이썬

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

 

11655번: ROT13

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

www.acmicpc.net

 

풀이

알파벳을 List 에 담아 index 로 암호화를 구현 하였다.

0~25 를 넘어가는 숫자는 26으로 나눈 나머지 값으로 처리 해 주었다.

 

asciiCode = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

rot = ""

for s in input():
    if s.isalpha():
        if s.isupper():
            idx = asciiCode.index(s.lower())
            idx = (idx + 13)%26
            rot += asciiCode[idx].upper()
        else:
            idx = asciiCode.index(s)
            idx = (idx + 13)%26
            rot += asciiCode[idx]
    else:
        rot += s
        
print(rot)
Comments