Python에서 문자열 문제를 해결할 때에 ord()와 chr()를 유용하게 써봅시다.

ord()는 해당 문자의 ASCII code를 반환합니다. (ex> ord(‘A’) = 65)
반대로, chr()는 해당 ASCII code에 상응하는 문자를 출력해낼 수 있습니다. (ex> chr(65) = ‘A’)

위의 두 함수를 잘 활용하면 글자를 원하는만큼 앞뒤로 왔다갔다 할 수 있습니다.
이때 주의할 점은 ‘A’의 ASCII code보다 작아지면 알파벳의 범주를 넘어서서 다른 문자를 출력하게 되므로
if 문을 통해서 문자를 3개 앞당겼을 때 ‘A’의 ASCII code보다 작아진다면
알파벳 개수인 26을 더해서 마치 알파벳 범주를 계속해서 순환하듯이 만들어줍니다.

그렇게 된다면, 문자별로 매칭되는 범주는 다음과 같습니다.

변환전 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
변환후 D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

최종적으로 join을 사용하여 하나로 합해 출력해주면 됩니다.

문제 : 백준 5598 - 카이사르 암호