Caesar Cipher Encryptor

Tiffany ·2024년 3월 5일
0

AlgoExpert

목록 보기
1/20

주어진 문자는 오직 소문자만 존재하고, 주어진 키 값 만큼 shift 시켜 원래의 데이터 타입인 문자로 리턴하는 함수.

얼마만큼 shift 할지 변환하기 위해 키를 26으로 나누고 남은 값을 구하고, 해당하는 문자를 숫자로 represent 하는 함수로 바꾸고 그 키 값을 더해준다.
문자에 각각 해당하는 ASCII 숫자로 바꿔주면 a-z는 97-122 소문자 a는 97부터 시작하기 때문에 주어진 문자가 z 였다고 가정하면 키를 더한값은 122 + 키 이므로, 122 보다 클것이다. 122보다 큰것은 무의미하므로 다시 % 연산자를 사용하여 나머지 값을 구하고 97이 아닌 96을 더한다.

def caesarCipherEncryptor(string, key): 
    result = "" 
    for letter in string:
        key = key % 26 
        rem = ord(letter) + key 
        if rem > 122:
            rem = rem % 122 + 96 
        result += chr(rem)    
    return final

숫자를 다시 문자로 바꿔주는 chr() 함수와 아스키코드에 해당하는 숫자로 바꿔주는 ord() 안다면 어려운 문제는 아니다.

profile
Love what you do and don't quit.

0개의 댓글