문제풀이/프로그래머스

[프로그래머스][구현] - 시저 암호(파이썬/python)

얄루몬 2022. 8. 1. 20:37

문제 풀이

def solution(s, n):
    answer = ''
    for i in s:
        if i.islower():
            answer += chr((ord(i)-ord('a')+n) % 26 +ord('a'))
        elif i.isupper():
            answer += chr((ord(i)-ord('A')+n) % 26 + ord('A'))
        else:
            answer += " "
    return answer
  • 판별해야 하는 경우는 대문자, 소문자, 띄어쓰기 세가지 경우로 나뉜다.
  • 소문자인 경우
    • 해당 문자를 유니코드로 바꾼 뒤 다시 문자로 돌려준다.
    • 이때 z에서 a로 다시 돌아가는 부분의 문제를 해결해주기 위해서 %26(알파벳이 25개니 26이 1로 다시 돌아가게 하기 위함이다.)
  • 대문자일 경우도 소문자처럼 위와 동일한 로직이다.
  • 띄어쓰기인 경우엔 그대로 띄어쓰기를 돌려주면 된다.