def solution(s, n):
answer = ''
a = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P", "Q","R","S","T","U","V","W","X","Y","Z"]
for i in s:
if i.islower():
i = i.upper()
idx = (a.index(i)+n)%26
answer += a[idx].lower()
elif i.isupper():
idx = (a.index(i)+n)%26
answer += a[idx]
else:
answer += i
return answer
1차원적인 접근으로 풀었던 방법
알파벳은 26개... 기억하자...😊
아스키코드로 변환하는 함수
- ord(문자) : 하나의 문자를 인수로 받고 해당 문자의 유니코드 정수 반환 (ex. ord('a') -> 97)
- chr(문자) : 하나의 정수를 문자로 받고 해당 정수의 유니코드 문자 반환 (ex. chr(97) -> 'a'
인자(정수)의 유효 범위는 0 ~ 1,114,111 (16진수 0x10 FFFF)까지
def solution(s, n):
s = list(s)
for i in range(len(s)):
if s[i].isupper():
s[i]=chr((ord(s[i])-ord('A')+ n)%26+ord('A'))
elif s[i].islower():
s[i]=chr((ord(s[i])-ord('a')+ n)%26+ord('a'))
return "".join(s)