반응형
-풀이
def solution(s, n):
answer = ''
a = []
for i in s:
b = ord(i)+n
if ord(i) < 91 and b > 90:
a.append((b)-26)
elif b > 122:
a.append((b)-26)
elif i == ' ':
a.append(' ')
else:
a.append(b)
for i in a:
if i == ' ':
answer += ' '
else:
answer += chr(i)
return answer
-풀이 설명
처음엔 ord()함수로 문자열의 아스키코드를 찾아 n만큼 더한 후 다시 문자열로 나타내면 되는 줄 알았지만, z에서 n만큼 밀릴 경우를 조건문으로 나타내 주어야 했다. 그래서 아스키코드 표를 참고하여 n만큼 밀었을 때 'z'나 'Z'를 넘어갈 경우 다시 'a', 'A'로 갈 수 있게끔 만들어주었다.
다른 사람들의 풀이를 보니 isalpha() 함수를 이용해 문자열을 찾고, islower(), isupper()함수로 소문자, 대문자를 구별하는 방법도 있다는 것을 알게되었다.
'알고리즘' 카테고리의 다른 글
[프로그래머스][level 1]수박수박수박수박수 (0) | 2021.10.03 |
---|---|
[프로그래머스][level 1]문자열을 정수로 바꾸기 (0) | 2021.10.03 |
[프로그래머스][level 1]약수의 합 (0) | 2021.10.02 |
[프로그래머스][level 1]이상한 문자 만들기 (0) | 2021.10.02 |
[프로그래머스][level 1]자릿수 더하기 (0) | 2021.10.02 |