접근법
먼저 소문자일때와 대문자일때를 나눈 후 처리를 합니다. 문자를 아스키 코드로 나타내는 함수 ord()와 아스키코드를 문자로 나타내는 표현 chr()를 사용하여 숫자로 처리합니다. 더한 수가 a~z, A~Z범위를 넘을 경우에는 알파벳 수만큼 빼주어 처음 a부터 시작할 수 있도록 만들어줍니다.
나의 코드
def solution(s, n):
s_list = list(s)
for i,alpha in enumerate(s_list):
if alpha == ' ': continue
if alpha.islower():
if ord(alpha) + n > ord('z'):
s_list[i] = chr(ord(alpha)+n-(ord('z')-ord('a')+1))
else:
s_list[i] = chr(ord(alpha)+n)
elif alpha.isupper():
if ord(alpha) + n > ord('Z'):
s_list[i] = chr(ord(alpha)+n-(ord('Z')-ord('A')+1))
else:
s_list[i] = chr(ord(alpha)+n)
return ''.join(s_list)