[프로그래머스] 시저 암호

SUN·2023년 1월 16일
0

프로그래머스

목록 보기
16/49

파이썬으로 프로그래머스 문제 풀어보기

시저 암호

def solution(s, n):
    word = list(s)
    
    for i in range(len(word)):
        if word[i].islower():
            word[i] = chr((ord(word[i]) - ord('a') + n) %26 +ord('a'))

        elif word[i].isupper():
            word[i] = chr((ord(word[i]) - ord('A') + n) %26 +ord('A')).upper()
            
    return ("".join(word))

'''
ord(문자) = 문자-> 아스키 코드로 변환
ord('a') 를 빼주는 이유는 둘의 값의 차이를 알기위해서
+n을해서 밀어낼 수를 정하고 % 26은 알파벳수만큼 나눠서 
나머지를 구하고
그 값에 ord('a')를 더해서 아스키 값을 만들고
그걸 다시 chr로 아스키 -> 문자로 바꾼다

"".join(문자열리스트) -> 리스트를 합치고싶을 때 사용


'''

0개의 댓글