본문 바로가기
알고리즘이야기/프로그래머스_알고리즘_lv1

시저 암호

by 효우너 2020. 5. 17.
728x90
반응형

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12926


 

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

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

programmers.co.kr


이전에 파이썬 독학 시작하면서 초반에 아스키코드 변경 부분을 알게 되었다. 이후로 유용하게 쓰인다 ^____^

여기서는 'z'에서 'a'로 바꿔주는 순서를 처음에 효율성이 떨어지도록 구현해놨더니 실행 실패했다,,,ㅠ

그래서 유용하게 쓰는 len(a)%i 이런 식으로 생각을 해보니 비슷하게 구현할 수 있을 것 같았다.

따라서 'z'와 'Z'일때만 'a'로 돌아갈 수 있도록 구현했다!

def solution(s, n):
    anwer=0
    result=''
    s=list(s)
    for i in s:
        if i=='z':
            o=ord('a')  #아스키코드 해당 숫자로 바꿔줌
            answer=o+n-1  #'a'로 돌아가도록 
            answer=chr(answer)  #아스키코드 해당 문자로 바꿔줌
        elif i=='Z':
            o=ord('A')
            answer=o+n-1  #'A'로 돌아가도록
            answer=chr(answer)
        elif i==' ':
            answer=i
        else:
            o=ord(i)
            answer=o+n
            answer=chr(answer)
        result+=answer
    return result

아스키코드 문법 포스팅 참고 ↓
2020/05/17 - [개발이야기/python] - ascii 변환
 

ascii 변환

python에서 유용하게 쓰이는 ascii 변환 문법에 대해 소개하려고 한다! (다른 언어에서도 쓰여욤!_!) 단 두 개만 알면 된다. ord()와 chr() 다. chr는 character로 변환한다는 뜻으로 알고 있었지만 ord는 무��

hyoveloper.tistory.com

728x90
반응형

'알고리즘이야기 > 프로그래머스_알고리즘_lv1' 카테고리의 다른 글

문자열 다루기 기본  (0) 2020.05.24
콜라츠 추측  (0) 2020.05.17
소수 찾기  (0) 2020.05.16
서울에서 김서방 찾기  (0) 2020.05.16
모의고사  (0) 2020.05.16

댓글