Algorithm/Programmers

[Python] 시저 암호

느낌표 공장장 2021. 4. 26. 23:53
def solution(s, n):
result = []
for i in s :
if i == " " :
result.append(" ")
else :
ask = ord(i) + n
if ask > ord("z") :
ask_r = ord("a")-1 + (ask-ord("z"))
result.append(chr(ask_r))
elif i.isupper() and ask > ord("Z") :
ask_r = ord("A")-1 + (ask- ord("Z"))
result.append(chr(ask_r))
else :
result.append(chr(ask))
return ''.join(result)

문자를 아스키코드로 변형하여 n만큼 움직여준 뒤, 리스트에 추가해주는 방법

n만큼 이동한 아스키코드가 z(또는 Z)보다 크다면,  다시 a 혹은 A로 돌아와서 ask-ord("z") 만큼 움직여준다.

'Algorithm > Programmers' 카테고리의 다른 글

[Python] 자릿수 더하기  (0) 2021.04.27
[Python] 약수의 합  (0) 2021.04.27
[Python] 주식가격  (0) 2021.04.22
[Python] 프린터  (0) 2021.04.22
[Python] 다음 큰 숫자  (0) 2021.04.19