알고리즘 (JAVA)/프로그래머스 알고리즘

[코테준비 - python] 시저 암호 level1 - 개발자배찌

개발자 배찌 2022. 12. 15. 18:59
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/12926

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

알아야 했던 부분!

 

우선 이 문제를 풀기 전 반드시 알아두어야하는 파이썬의 내장함수가 있다.

 

 - ord(문자) : 문자의 아스키 코드 값을 반환한다.

 - chr(아스키코드) : 아스키코드 값을 반환한다.

 

성공한 풀이과정

def solution(s, n):
    answer =''
    for i in s :
        if i == ' ' :
            answer += ' '
        else :
          # ord(문자) : 문자의 아스키 코드 값을 반환.
          # chr(아스키코드) : 아스키코드 값을 반환.
            k = chr(ord(i)+n)
            if k.isupper() != i.isupper() or not k.isalpha() :
                k = chr(ord(k)-26)
            answer += k
    return answer

 

실제로 아스키코드 관련된 코테 문제가 나올까? 안나올듯..

일단 알파벳이 아니고 특수문자일 경우나, 대문자일 경우  -26을 빼주면 된다는것과

아스키코드값을 반환하는 방법 ord(문자), chr(아스키코드) 이 두가지는 알고 있어야 할 것 같다.

 

 

참고블로그

https://zest1923.tistory.com/m/66

 

[Python] 시저암호 (프로그래머스)

문제를 보시려면 클릭하세요 더보기 문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"

zest1923.tistory.com