티스토리 뷰

728x90

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

 

코딩테스트 연습 - 시저 암호

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

programmers.co.kr

 

  • 해설 :

문자열 S와 정수 N이 주어질 때, 문자열 S의 각 요소들을 n만큼 밀어서 변환시킨 결괏값을 출력하면 된다.

 

 

 

 

  • 풀이 :

ascii 기준으로 "a"는 97번, "A"는 65번이므로 주어진 문자가 대문자, 또는 소문자인지 판별하고 대문자라면 그 값을 ascii로 변환한 값에 65를 빼고 26으로 나눈 나머지를 변환시키고, 소문자라면 97을 빼고 26으로 나눈 나머지를 변환시킨다.

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
def solution(s, n):
    answer = ''
    for i in s:
        if i != " ":
            if i.islower():
                answer += chr(97+((ord(i)-97)+n)%26)
            else:
                answer += chr(65+((ord(i)-65)+n)%26)
        else:
            answer += i
    return answer
cs
320x100
댓글
© 2022 WonSeok, All rights reserved