Caesar Cipher

dogit·2021년 11월 28일
0

python문제

목록 보기
11/13

문제

코드

def caesarCipher(s, k):
    c = ""

    for i in s:
        if i.islower():
            c += chr((ord(i)-97+k)%26+97)
        elif i.isupper():
            c += chr((ord(i)-65+k)%26+65)
        else:
            c+=i
    return c

문제 풀이

> c += chr((ord(i)-97+k)%26+97)
1. ord()함수로 i번째 인덱스 문자를 10진법 아스키코드로 변환시키고
2. x -> a, y -> b, z -> c의 반례를 고려하여
소문자는 -97 대문자는 -65 그리고 문제에서 주어진 k만큼 + 해준다 그리고 그 결과를 알파벳 갯수인 26의 나머지를 구하고 다시 소문자와 대문자에 맞게 더해준다

출처

https://www.hackerrank.com/challenges/one-month-preparation-kit-caesar-cipher-1/problem?h_l=interview&isFullScreen=false&playlist_slugs%5B%5D=preparation-kits&playlist_slugs%5B%5D=one-month-preparation-kit&playlist_slugs%5B%5D=one-month-week-two

profile
느리더라도 꾸준하게

0개의 댓글