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

Minyoung Lee·2023년 1월 3일

Programmers

목록 보기
6/15
post-thumbnail

문제 링크

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

개념 & 문법

- 문법

  • islower(), isupper(): 소문자, 대문자 판별 함수
  • isalpha(): 알파벳 판별 함수, 공백은 False로 판별

코드

def solution(s, n):
    answer = []
    
    for c in list(s):
        if c.isalpha():
            temp = ord(c) + n #ascii 숫자, 이동 숫자의 합
    
            if c.islower() and temp > 122 or c.isupper() and temp > 90:
                temp -= 26 
            
            answer.append(chr(temp))
        else:
            answer.append(c)
                
    return ''.join(answer)
  • ascii code 이용
  • 풀이 순서
    1. 문자열 리스트로 변환
      1) 해당 문자가 알파벳인지 확인
      • 소,대문자 구별
      • (z -> a) 로 넘기기 위해 ascii 숫자 + n(이동 숫자) 가 z(122),Z(90) 을 넘는지 확인
      • 넘으면 a부터 시작하도록 26을 빼준다.
        2) 알파벳이 아닌 경우 ' '으로 간주하고 append
    2. return 시 join하여 string으로 변환
profile
웩알고👩‍💻

0개의 댓글