저고데

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

프로그래머스

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

진철 2023. 1. 18. 20:48
728x90
반응형

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12926

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

본 문제를 간단하게 요약하면 다음과 같다.

알파벳으로만 이루어진 문자열이 담긴 배열 s와 숫자 n이 주어진다.

시저암호는 해당 알파벳을 n만큼 증가시킨 것을 의미한다.

이 때, s를 n만큼 증가시킨 암호를 반환하는 것이다.

예를 들어서, s="A B z", n=1인 경우, "B C a"로 반환하면 되는 것이다.

 

코드를 작성하기 위한 순서는 다음과 같다.

1. 소문자와 대문자를 구별하기 위해 각각의 문자열을 하나 만들어준다.

2. 공백은 따로 증가시키지 않고 유지하기 때문에 그냥 넘어가준다.

3. 해당 문자의 인덱스는 몇 번째인지 구해준다.

4. 인덱스 + n을 했을 때, 배열을 벗어나면 벗어난만큼 처음부터 시작하여 지정해주기 때문에, (index + n) % 26(알파벳 총 갯수)를 해줘서 circular que 꼴로 만들어준다.

def solution(s, n):
    answer = ''
    big='ABCDEFGHIJKLMNOPQRSTUVWXYZ' #1번
    small='abcdefghijklmnopqrstuvwxyz'
    for i in s:
        if i==' ': #2번
            answer+=i
        elif i in big:
            dex=big.index(i) #3번
            newdex=(dex+n)%26 #4번
            answer+=big[newdex]
        else:
            dex=small.index(i)
            newdex=(dex+n)%26
            answer+=small[newdex]
    return answer
728x90
반응형