PROGRAMMERS Python Lv1. 시저암호
이번 문제는 시저암호이다.
나의 코드는 다음과 같다.
def solution(s, n):
answer = ''
low = "abcdefghijklmnopqrstuvwxyz"
up = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for al in s:
if al in low:
idx = low.find(al) + n
answer += low[idx%26]
elif al in up:
idx = up.find(al) + n
answer += up[idx%26]
else:
answer += " "
return answer
이 문제는 다음과 같은 순서로 해결했다.
-
소문자와 대문자가 있는 리스트를 생성한다.
-
s로 주어진 단어를 슬라이싱하여 소문자인지 대문자인지 구별한다.
-
소문자일 경우 find함수를 통해 그 위치를 찾고 n을 더한다.
-
대문자인 경우도 방법은 동일하다.
-
n을 더한 위치를 26으로 나눈 나머지를 인덱스로 해서 각각의 리스트에서 문자를 받는다. 이렇게 하면 z를 넘어가는 알파벳도 해결가능하다.
-
그 후 answer에 더해준다.
댓글남기기