S E P H ' S

[Python] 시저 암호 본문

Algorithm/Programmers

[Python] 시저 암호

yoseph0310 2021. 6. 25. 15:17

 

 

코딩테스트 연습 - 시저 암호

어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀

programmers.co.kr

1. 문자열 인덱싱 활용

 

def solution(s, n):
	low = 'abcdefhijklmnopqrstuvwxyz'
    up = low.upper()
    answer = ''
    for char in s:
    	if char in low:
        	idx = low.find(char)+n
            answer += low[idx%26]
        elif char in up:
        	idx = up.find(char)+n
            answer += up[idx%26]
        else:
        	answer += ' '
    return answer

 

2. 아스키코드 활용

 

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)

'Algorithm > Programmers' 카테고리의 다른 글

[Python] 모의고사  (0) 2021.07.05
[Python] 소수 만들기  (0) 2021.06.30
[Python] 최대공약수와 최소공배수  (0) 2021.06.25
[Python] 콜라츠 추측  (0) 2021.06.25
[Python] 하샤드 수  (0) 2021.06.25