본문 바로가기
컴퓨터/알고리즘

[프로그래머스] Lv1 시저 암호_python 문제 풀이

by 버니케이 2022. 7. 9.
반응형

출처

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

문제

어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식
"AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"

 

s는 알파벳 소문자, 대문자, 공백이고,
공백은 아무리 밀어도 공백

입출력예시

"AB"

"z"'

"a B z"

문제풀이1

def solution(s, n):
    sentense = s
    answer = ""
    대문자 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    소문자 = "abcdefghijklmnopqrstuvwxyz"

    for i in range(len(sentense)):
        if sentense[i] in 대문자:
            new_idx = (대문자.find(sentense[i]) + n) % len(대문자)
            answer += 대문자[new_idx]
        elif sentense[i] in 소문자:
            new_idx = (소문자.find(sentense[i]) + n) % len(소문자)
            answer += 소문자[new_idx]
        else:
            answer += sentense[i]

    return answer
반응형

댓글