Lv1. 연습문제 - 시저 암호



이 문제는 ord, chr 함수만 알고 있으면 된다.

ord : 문자를 아스키코드로 변환해준다.

chr : 아스키코드를 문자로 변환해준다.

  1. 대문자와 소문자 배열을 만들어둔다.
  2. s를 순회하며 ord() 함수로 각 문자의 아스키코드를 구한다.
  3. 아스키코드 + n을 한 후 이를 다시 chr() 함수로 문자로 변환한다.
  4. 알파벳이 넘어가면 다시 처음으로 돌아오므로 % 26으로 계산해준다.


소스코드는 다음과 같다.

def solution(s, n):
    ans = ''
    small = [chr(ord('a') + i) for i in range(26)]
    big = [chr(ord('A') + i) for i in range(26)]
    for ch in s:
        if ch.isalpha():
            ans += small[(small.index(ch)+n)%26] if ch.islower() else big[(big.index(ch)+n)%26]
        else :
            ans += ch
    return ans



시저 암호 Github에서 보기