IT/코딩
(파이썬) 백준 11655번 ROT13 파이썬 풀이, Python3
new1life
2022. 8. 10. 05:52
1.
a=list(input())
a에 입력값을 리스트로 받습니다.
b = len(a)
리스트의 길이를 b로 받습니다.
2.
for i in range(b):
if ord(a[i])==32:
a[i] = ' '
띄어쓰기의 아스키 코드는 32, 32일 때 띄어쓰기를 넣어줍니다.
elif a[i].isdigit():
숫자가 나오면 변함없이 숫자가 나옵니다.
a[i] = a[i]
else:
띄어쓰기, 숫자가 아닐 경우에만 ROT13을 진행합니다.
if a[i].isupper():
if (ord(a[i])+13) <91:
a[i]=chr(ord(a[i])+13)
else:
a[i]=chr(ord(a[i])-13)
대문자일 때, 아스키코드 90(Z)보다 크면 -13, 작으면 +13합니다. 그 이유는 알파벳은 총 26자이기 때문입니다.
else:
if (ord(a[i])+13)<123:
a[i]=chr(ord(a[i])+13)
else:
a[i]=chr(ord(a[i])-13)
소문자일 때에도 마찬가지입니다. 아스키코드 122(z)보다 작으면 +13, 크면 -13합니다.
print(*a,sep='')
새로 만들어진 리스트a를 붙여서 출력합니다.