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

리스트를 쓰지 않고, 아스키 코드를 이용해서 풀어 보았다.
- chr(ascii) : ascii에 대응하는 alpha를 문자열로 반환
- ord(alpha) : alpha에 대응하는 아스키 코드를 문자열로 반환
아스키 코드는 소문자 a~z, 그리고 대문자 A~Z까지 순서대로 배치되어 있으니
케이스를 나누어 'A'와 Alpha까지의 차이에다가 n을 더한 만큼 아스키 코드로 'A'로부터 이동한 뒤, 문자로 반환시킨다.
공백은 공백으로 나와야 하는데, 공백에 대응하는 아스키 코드가 존재하므로 코드에 공백인 경우는 pass하도록 구현해야 한다.
def solution(s, n):
answer = ''
for alpha in s:
if alpha.isalpha():
if alpha.islower(): # a 기준, alpha와의 차이 + n만큼 플러스
answer += chr(ord('a') + (ord(alpha) - ord('a') + n)%26)
else: # A 기준, alpha와의 차이 + n만큼 플러스
answer += chr(ord('A') + (ord(alpha) - ord('A') + n)%26)
else:
answer += ' '
return answer
'코딩테스트' 카테고리의 다른 글
[파이썬] 핸드폰 번호 가리기 [CODING TEST #37] (0) | 2022.08.03 |
---|---|
[파이썬] 실패율 - 2019 KAKAO BLIND RECRUITMENT [CODING TEST #36] (0) | 2022.08.03 |
[파이썬] 3진법 뒤집기 - 월간 코드 챌린지 시즌1 [CODING TEST #34] (0) | 2022.08.02 |
[파이썬] 로또의 최고 순위와 최저 순위 - 2021 Dev-Matching: 웹 백엔드 개발자(상반기) [CODING TEST #33] (0) | 2022.08.02 |
[파이썬] 불량 사용자 - 2019 카카오 개발자 겨울 인턴십 [CODING TEST #32] (0) | 2022.08.01 |
댓글