IT/코딩

(파이썬) 백준 11655번 ROT13 파이썬 풀이, Python3

new1life 2022. 8. 10. 05:52

백준 11655
코드

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를 붙여서 출력합니다.