Lv1. 연습문제 - 시저 암호
이 문제는 ord, chr 함수만 알고 있으면 된다.
ord : 문자를 아스키코드로 변환해준다.
chr : 아스키코드를 문자로 변환해준다.
- 대문자와 소문자 배열을 만들어둔다.
- s를 순회하며 ord() 함수로 각 문자의 아스키코드를 구한다.
- 아스키코드 + n을 한 후 이를 다시 chr() 함수로 문자로 변환한다.
- 알파벳이 넘어가면 다시 처음으로 돌아오므로 % 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