📖 문제 링크
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='')
'알고리즘 > Python' 카테고리의 다른 글
[백준/Python] 1406번: 에디터 (0) | 2022.01.31 |
---|---|
[백준/Python] 9012번: 괄호 (0) | 2022.01.25 |
[백준/Python] 11652번: 카드 (0) | 2022.01.25 |
[백준/Python] 10989번: 수 정렬하기 3 (0) | 2022.01.24 |
[백준/Python] 10825번: 국영수 (0) | 2022.01.24 |