시저암호를 만드는 알고리즘은 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 말하는데 알파벳의 순서를 일정거리만큼 밀어서 대응시키는것이 중점이다. 다만, 맨 마지막 알파벳은 맨 처음 알파벳과 이어지는것을 유의해서 구하면 되는데, 필자는 아스키 코드값을 기억하고 있기에 (A가 65, a가 97이다.) 이 테이블을 이용하여 알고리즘을 구현했다.
def solution(s, n):
answer = ''
for i in list(s):
if i != " ":
if i.isupper() :
answer += chr(ord(i)+n) if ord(i)+n < 91 else chr(ord(i)-26+n)
elif i.islower() :
answer += chr(ord(i)+n) if ord(i)+n < 123 else chr(ord(i)-26+n)
else:
answer += " "
return answer
'알고리즘 & 코딩테스트 > 코딩테스트' 카테고리의 다른 글
Programmers Lv.1 "크기가 작은 부분문자열" (0) | 2023.06.07 |
---|---|
Programmers Lv.1 "최소직사각형" (0) | 2023.06.01 |
Programmers Lv. 1 "삼총사" (0) | 2023.05.31 |
Programmers Lv.1 "예산" (0) | 2023.05.31 |
Programmers Lv.1 "이상한 문자 만들기" (0) | 2023.05.24 |