공백은 아무리 밀어도 공백입니다.
s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다.
s의 길이는 8000이하입니다.
n은 1 이상, 25이하인 자연수입니다.
cap_list = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']*25
small_list = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']*25
a = []
for i in range(len(s)):
a.append(s[i])
for j in range(len(a)):
if a[j] in cap_list:
b = cap_list.index(a[j])
a[j] = cap_list[b+n]
elif a[j] in small_list:
c = small_list.index(a[j])
a[j] = small_list[c+n]
return ''.join(a)
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 caesar(s, n):
lower_list = "abcdefghijklmnopqrstuvwxyz"
upper_list = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
result = []
for i in s:
if i is " ":
result.append(" ")
elif i.islower() is True:
new_ = lower_list.find(i) + n
result.append(lower_list[new_ % 26])
else:
new_ = upper_list.find(i) + n
result.append(upper_list[new_ % 26])
return "".join(result)
def caesar(s, n):
eng = "abcdefghijklmnopqrstuvwxyz"
new = ""
for i in s :
if i == " " :
new += " "
for j in range(len(eng)) :
if eng[j] == i.lower() :
if i.isupper() == True :
new += eng[(j+n) % len(eng)].upper()
else :
new += eng[(j+n) % len(eng)]
return new
ord문자 활용하는 방법만 알아도 문제를 편리하게 풀 수 있는 것 같다. 그렇지만 나에겐 아직 정립이 안된 느낌~