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

강주형·2022년 8월 13일
0

https://school.programmers.co.kr/learn/courses/30/lessons/12926

연습문제

def solution(s, n):
    U = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    L = "abcdefghijklmnopqrstuvwxyz"
    answer  = ''
    for i in s:
        if i in U:
            answer += U[(U.index(i) +n) % len(U)]
        elif i in L:
            answer += L[(L.index(i) +n) % len(L)]
        else:
            answer += ' '
    return answer

타인 코드
def caesar(s, n):
    s = list(s)
    for i in range(len(s)):
        if s[i].isupper():
            s[i]=chr((ord(s[i])-ord('A')+ n)%26+ord('A'))
        elif s[i].islower():
            s[i]=chr((ord(s[i])-ord('a')+ n)%26+ord('a'))

    return "".join(s)

ord()와 chr()를 이용했다.
나는 몰랐음

ord(): 아스키코드 값을 정수형으로 변환
chr(): 정수형 값을 아스키코드 값으로 변환

아래 예시

print(ord('a'), ord('b'))
print(chr(97), chr(98))
97 98
a b
profile
Statistics & Data Science

0개의 댓글