💡 Codeing Test/프로그래머스

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

밈98 2023. 2. 14. 14:04

내가 모르는점 :  z 에서 a로 돌아가는 방법은

알파벳 숫자가 26개이므로 인덱스의 값의 26의 나머지를 이용하는것이다.

일단 1~25까지는 25가 나오므로 괜찮음

26이상의 값부터는 0, 1 ,2 가 나오기때문에 앞으로 돌아가서 원하는 값을 빼올 수 있다

def solution(s, n):
    answer = ''
    
    bigarr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    smallarr = "abcdefghijklmnopqrstuvwxyz"
    
    arr = []
    
    for i in s:
        if i in bigarr:
            idx = bigarr.index(i)
            arr.append(bigarr[(idx+n)%26])
        elif i in smallarr:
            idx = smallarr.index(i)
            arr.append(smallarr[(idx+n)%26])
        if i == " ":
            arr.append(" ")

    return "".join(arr)