이번에도 ASCII를 다루는 문제였다.

 

주의할 점은 대문자를 13 뒤로 미뤘을 때 소문자로 가는 부분까지 처리해주어야 한다는 점이다.

 

해당 부분만 주의해서 처리해주면 쉽게 풀 수 있는 문제였다!

 

sentence = input()
answer = ''    # 정답 문자 출력

for ch in sentence:    # 각 문자별 반복
    if not ch.isalpha():    # 알파벳이 아닐경우 그대로 출력
        answer += ch
        continue
    new = chr(ord(ch) + 13)
    if ch.isupper():    # 대문자인 경우
        if ord(new) > ord('Z'):    # Z보다 ASCII 값이 크다면
            new = chr(ord(new) - 26)    # 26만큼 빼서 대문자 알파벳 범위내로 조정
        answer += new    # 정답에 해당 문자 추가
        continue
    new = chr(ord(ch) + 13)    # 소문자인 경우 13만큼 뒤로 미룸
    if not new.isalpha():    # 뒤로 미룬 값이 알파벳이 아니라면
        new = chr(ord(new) - 26)    # 아스키 코드 값에 의해 26만큼 당겨서 알파벳 범위내로 조정
    answer += new    # 정답에 해당 문자 추가

print(answer)    # 정답 출력

+ Recent posts