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