문제 풀이
def solution(s, n):
answer = ''
for i in s:
if i.islower():
answer += chr((ord(i)-ord('a')+n) % 26 +ord('a'))
elif i.isupper():
answer += chr((ord(i)-ord('A')+n) % 26 + ord('A'))
else:
answer += " "
return answer
- 판별해야 하는 경우는 대문자, 소문자, 띄어쓰기 세가지 경우로 나뉜다.
- 소문자인 경우
- 해당 문자를 유니코드로 바꾼 뒤 다시 문자로 돌려준다.
- 이때 z에서 a로 다시 돌아가는 부분의 문제를 해결해주기 위해서 %26(알파벳이 25개니 26이 1로 다시 돌아가게 하기 위함이다.)
- 대문자일 경우도 소문자처럼 위와 동일한 로직이다.
- 띄어쓰기인 경우엔 그대로 띄어쓰기를 돌려주면 된다.
'문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 문자열 내 마음대로 정렬하기 (0) | 2022.08.09 |
---|---|
[프로그래머스] - 정수 제곱근 판별 (0) | 2022.08.06 |
[프로그래머스][스택/큐] - 올바른 괄호(파이썬/python) (0) | 2022.07.31 |
[프로그래머스][완전 탐색] - 최소 직사각형(파이썬/Python) (0) | 2022.07.14 |
[프로그래머스][Lv1] - 체육복 (그리디 알고리즘)(파이썬/Python) (0) | 2022.07.13 |