Algorithm
시저 암호 / 프로그래머스
김예나
2025. 1. 27. 01:27
시저 암호
처음 오답
def solution(s, n):
answer = ""
for i in s:
if i == " ":
answer += " "
elif i == "z" or i == "Z":
answer += chr(ord(i) - 26 + n)
else:
answer += chr(ord(i) + n)
return answer
- z만 처리해 줄 것이 아니라 나머지 문자도 범위를 초과해야 하는 경우 처리를 해 줘야 했음
정답
- ord() : 아스키코드값으로 변경해줌 -> 파이썬은 c언어와 다르게 명시적으로 함수를 사용해야 함
- chr() : 아스키코드를 문자로 변경
def solution(s, n):
answer = ""
for i in s:
if i == " ":
answer += " "
elif 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'))
return answer