PROGRAMMERS Python Lv1. 시저암호

최대 1 분 소요

이번 문제는 시저암호이다.

나의 코드는 다음과 같다.

def solution(s, n):
    answer = ''
    low = "abcdefghijklmnopqrstuvwxyz"
    up = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    for al in s:
        if al in low:
            idx = low.find(al) + n
            answer += low[idx%26]
        elif al in up:
            idx = up.find(al) + n
            answer += up[idx%26]
        else:
            answer += " "
    return answer

이 문제는 다음과 같은 순서로 해결했다.

  1. 소문자와 대문자가 있는 리스트를 생성한다.

  2. s로 주어진 단어를 슬라이싱하여 소문자인지 대문자인지 구별한다.

  3. 소문자일 경우 find함수를 통해 그 위치를 찾고 n을 더한다.

  4. 대문자인 경우도 방법은 동일하다.

  5. n을 더한 위치를 26으로 나눈 나머지를 인덱스로 해서 각각의 리스트에서 문자를 받는다. 이렇게 하면 z를 넘어가는 알파벳도 해결가능하다.

  6. 그 후 answer에 더해준다.

댓글남기기