내 풀이 (실패)
def solution(s, n):
answer = ''
upper_list = list()
lower_list = list()
for i in range(ord('A'), ord('Z') + 1):
upper_list.append(chr(i))
for i in range(ord('a'), ord('z') + 1):
lower_list.append(chr(i))
for i in s:
if i in upper_list:
if i == 'Z':
answer += upper_list[n - 1]
else:
next_index = upper_list.index(i) + n
answer += upper_list[next_index]
elif i in lower_list:
if i == 'z':
answer += lower_list[n - 1]
else:
next_index = lower_list.index(i) + n
answer += lower_list[next_index]
else:
answer += " "
return answer
내풀이 (성공)
def solution(s, n):
answer = ''
upper_list = list()
lower_list = list()
for i in range(ord('A'), ord('Z') + 1):
upper_list.append(chr(i))
for i in range(ord('a'), ord('z') + 1):
lower_list.append(chr(i))
for i in s:
if i in upper_list:
next_index = upper_list.index(i) + n
answer += upper_list[next_index % 26]
elif i in lower_list:
next_index = lower_list.index(i) + n
answer += lower_list[next_index % 26]
else:
answer += " "
return answer
다른방법 1
def caesar(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)
# 주어진 문장을 암호화하여 반환하세요.
# 실행을 위한 테스트코드입니다.
print('s는 "a B z", n은 4인 경우: ' + caesar("a B z", 4))
'Engineering WIKI > Programmers' 카테고리의 다른 글
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2022.04.21 |
---|---|
[프로그래머스] 자릿수 더하기 (0) | 2022.04.21 |
[프로그래머스] 이상한 문자 만들기 (0) | 2022.04.20 |
[프로그래머스] 약수의 합 (0) | 2022.04.19 |
[프로그래머스] 문자열을 정수로 바꾸기 (0) | 2022.04.19 |
[프로그래머스] 소수 찾기 (0) | 2022.04.19 |
[프로그래머스] 문자열 다루기 기본 (0) | 2022.04.15 |
[프로그래머스] 문자열 내림차순으로 배치하기 (0) | 2022.04.15 |