10/19 시저 암호
https://school.programmers.co.kr/learn/courses/30/lessons/12926
시저 암호.
카이사르 암호(Caesar cipher) 또는 시저 암호는 암호학에서 다루는 간단한 치환암호의 일종이다. 시저 암호는 암호화하고자 하는 내용을 알파벳 별로 거리(key)만큼 밀어서 다른 알파벳으로 치환하는 방식이다.
내 풀이
def solution(string, key) :
answer = ""
for alp in string :
alp_ord = ord(alp) + key
if alp.islower() :
alp = chr(ord('a') + (alp_ord - ord('a')) % 26)
elif alp.isupper() :
alp = chr(ord('A') + (alp_ord - ord('A')) % 26)
answer += alp
return answer
풀이 설명
-
주어진 string 안의 각 알파벳별로 아스키코드에 주어진 key만큼 더해 alp_ord에 저장한다.
-
해당 알파벳 alp이 소문자일 경우
-
예
alp = ‘z’이고 key가 1이면 alp_ord = 123이 된다.
123 - a(97) = 26이 되고 a(97) + (26) % 26 = a(97)이 된다.
-
-
해당 알파벳 alp이 대문자일 경우
- 소문자일 경우와 동일하다.
다른사람의 풀이
- 거의 동일했고 리스트를 이용하면 answer += alp의 코드가 필요 없이 if문에서 바로 인덱싱을 해서 치환하면 코드가 더 깔끔해진다.
댓글남기기