본문 바로가기
프로그래머스/Python

[프로그래머스] 시저 암호 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 7. 7.
728x90
반응형

 

 

프로그래머스

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

programmers.co.kr

 

1. 문제 설명

2. 풀이과정

  1. 입력받은 문자열의 각 문자를 하나씩 추출한다. for i in s
  2. 추출한 문자를 아스키코드값으로 변환하고 거리를 더한 값을 저장한다. num = ord(i) + n
  3. 만약 추출한 문자가 공백문자이면 그대로 공백 문자를 추가한다. if (i == ' '): answer += i
  4. 만약 변환 결과가 소문자 z를 넘어가면 elif (122 < num)
  5. 변환 결과에 26을 빼준 값을 문자로 변환하여 추가한다. answer += chr(num - 26)
  6. 만약 변환 결과가 대문자 Z를 넘어가고 추출한 문자가 대문자 A 전의 문자라면 elif (90 < num) and (ord(i) < 97)
  7. 변환 결과에 26을 빼준 값을 문자로 변환하여 추가한다. answer += chr(num - 26)
  8. 모든 조건에 포함되지 않다면 변환 결과를 문자로 변환하여 추가한다. else: answer += chr(num)
반응형

3. 소스코드

def solution(s, n):
    answer = ''
    
    for i in s:
        num = ord(i) + n
        if (i == ' '):
            answer += i
        elif (122 < num):
            answer += chr(num - 26)
        elif (90 < num) and (ord(i) < 97):
            answer += chr(num - 26)
        else:
            answer += chr(num)
        
    return answer
728x90
반응형