Algorithm/프로그래머스
[프로그래머스] Lv1 - 시저 암호 (파이썬)
_temp
2022. 3. 23. 09:35
코딩테스트 연습 - 시저 암호
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀
programmers.co.kr
def solution(s, n):
answer = ''
for x in s:
if x == ' ':
answer += ' '
else:
if x.isupper():
answer += chr((ord(x)-ord('A') + n) % 26+ord('A'))
elif x.islower():
answer += chr((ord(x)-ord('a') + n) % 26+ord('a'))
return answer
풀이
1. 공백은 공백을 그대로 넣어준다.
2. 대문자일 경우
- 아스키코드화이후, 'A' + (x-'A'+n을 26으로 나눈 나머지)
3. 소문자일 경우
- - 아스키코드화이후, 'a' + (x-'a'+n을 26으로 나눈 나머지)
4. answer 리턴
ord : 문자를 아스키코드로
chr : 아스키코드를 문자로