출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12926
def solution(s, n) :
upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lower = upper.lower()
answer = ""
for i in s :
if i.isupper() == True :
answer = "".join((answer, upper[(upper.index(i) + n) % 26]))
elif i.islower() == True :
answer = "".join((answer, lower[(lower.index(i) + n) % 26]))
elif i == " " :
answer = "".join((answer, " "))
return answer
미리 대문자와 소문자 문자열을 생성해 놓고, 입력받는 문자열의 앞에서부터 대문자 or 소문자인지 isupper() 메소드와 islower() 메소드로 구분한다. 다음으로 해당 문자의 인덱스 번호를 index()로 받아와 n을 더해 변환할 문자를 찾아낸다.
'알고리즘 문제 풀이' 카테고리의 다른 글
백준 9020번 : 골드바흐의 추측 (Python) (0) | 2022.11.15 |
---|---|
백준 1015번 : 수열 정렬 (Python) (0) | 2022.11.08 |
백준 11652번 : 카드 (Python) (0) | 2022.11.01 |
백준 1740번 : 거듭제곱 (Python) (0) | 2022.10.26 |
백준 1268번 : 임시 반장 정하기 (Python) (0) | 2022.10.24 |
댓글