본문 바로가기

알고리즘 & 코딩테스트/코딩테스트

Programmers Lv.1 "시저 암호"

Programmers Lv.1 시저 암호, 연습문제, 정답률 71%

시저암호를 만드는 알고리즘은 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 말하는데 알파벳의 순서를 일정거리만큼 밀어서 대응시키는것이 중점이다. 다만, 맨 마지막 알파벳은 맨 처음 알파벳과 이어지는것을 유의해서 구하면 되는데, 필자는 아스키 코드값을 기억하고 있기에 (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