def solution(s, n):
answer = ''
capital = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
small = 'abcdefghijklmnopqrstuvwxyz'
for i in s:
if i in capital:
caesar = capital.find(i) + n
answer += capital[caesar%26]
elif i in small:
caesar = small.find(i) + n
answer += small[caesar%26]
else:
answer += " "
return answer
.find()
함수를 이용하여 input된 문자열 s을 구성하는 각각의 알파벳들이 변수 capital 혹은 small 에서 몇번 index에 위치하는지 알아낸 후, 알아낸 index에 n을 더한 값을 26(알파벳 전체 수)으로 나눈 값을 구한다. 그리고 그 값을 전체 알파벳을 나열한 변수(capital or small)의 index값으로 활용하여 answer 변수에 할당하여 답을 도출하였다. def caesar(s, n):
s = list(s)
for i in range(len(s)):
if s[i].isupper():
s[i]=chr((ord(s[i])-ord('A')+ n)%26+ord('A'))
elif s[i].islower():
s[i]=chr((ord(s[i])-ord('a')+ n)%26+ord('a'))
return "".join(s)
def solution(s, n):
answer = ''
for i in s:
if i:
if i >= 'A' and i <= 'Z':
answer += chr((ord(i) - ord('A') + n) % 26 + ord('A'))
elif i >= 'a' and i <= 'z':
answer += chr((ord(i) - ord('a') + n) % 26 + ord('a'))
else : answer += ' '
return answer
✅ Python ASCII
- ord(문자) : 문자에 해당하는 ASCII 정수값 반환
- chr(정수) : 정수에 해당하는 ASCII 문자 반환
- string.ascii_lowercase : 소문자에 해당하는 ASCII 값
- string.ascii_uppercase : 대문자에 해당하는 ASCII 값