알고리즘/Python

[백준/Python] 11655번: ROT13

_SIHA_ 2022. 1. 25. 01:41

📖  문제 링크

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

 

11655번: ROT13

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

www.acmicpc.net

 

👩‍💻  문제풀이

기본적인 문자열 + 알파벳 조합 문제이다.

아스키코드(소문자:97~122 / 대문자:65~90)를 사용해 m이하이면 13을 더해주고, m이상이면 13을 빼준다.

 

그리고 대소문자도 아닐때, 즉 공백일때 결과리스트에 추가하는 조건을 잊지 말아야한다.  

 

 

  최종 코드

word = list(input())

result = []
for i in word:
    if i.isupper() == True:
        if ord(i)+13 <= 90:
            result.append(chr(ord(i) + 13))
        else:
            result.append(chr(ord(i) - 13))
    
    elif i.islower() == True:
        if ord(i)+13 <= 122:
            result.append(chr(ord(i) + 13))
        else:
            result.append(chr(ord(i) - 13))
    else:
        result.append(i) #띄어쓰기 꼭 추가해줘야함

for i in result:
    print(i, end='')