본문 바로가기

알고리즘 공부/프로그래머스 > Python3

[프로그래머스] 시저 암호

https://programmers.co.kr/learn/courses/30/lessons/12926?language=python3

 

코딩테스트 연습 - 시저 암호

어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가

programmers.co.kr

 

[정답]

def solution(s, n):
    answer = ''
    for i in s:
        if i==' ': #빈칸
            answer+=' '
        elif (ord(i)>=97 and ord(i)<=122) and (ord(i)+n)>122: #소문자면서 ord()+n이 소문자보다 넘어가는 경우
            answer+=chr(ord(i)+n-26)
        elif (ord(i)>=65 and ord(i)<=90) and (ord(i)+n)>90: #대문자면서 ord()+n이 대문자보다 넘어가는 경우
            answer+=chr(ord(i)+n-26)
        else:
            answer+=chr(ord(i)+n)
    return answer