[4코1파] 4명의 안드로이드 개발자와 1명의 파이썬 개발자의 코딩 테스트 서막 : 4코1파

★축★하★

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원

START :

[3코1파] 2023.01.04~ (12일차)
[4코1파] 2023.01.13~ (3일차)

Today :

2023.01.15 [12일차]

프로그래머스 LV1.
시저 암호
https://school.programmers.co.kr/learn/courses/30/lessons/12926

문제 요약

문제 설명
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요.

제한 조건
공백은 아무리 밀어도 공백입니다.
s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다.
s의 길이는 8000이하입니다.
n은 1 이상, 25이하인 자연수입니다.

입출력 예

문제 풀이 방법

걍 보자마자 아스키코드로 풀어야 하는 문제구나
파이썬에는 아스키코드로 바꿔주는 ord, chr 함수가 있으니까 이걸 비벼서 잘 써야겠다

코드 공유

def solution(s, n):
    answer = ''
    for string in s:
    
        if 65<=ord(string)<=90:
            if ord(string)+n >= 91:
                answer += chr(65+(ord(string)+n)-91)
            else:
                answer += chr(ord(string)+n)

        elif 97<=ord(string)<=122:
            if ord(string)+n >= 123:
                answer += chr(97+(ord(string)+n)-123)  
            else: 
                answer += chr(ord(string)+n)

        else :
            answer +=' '
    return answer

증빙

다른 사람 풀이

%26 어쩌구 저쩌구 해서 풀었던데
이건 뭐 어려운 로직아니라서 다른 사람꺼
유의 깊게 잘 안봄 주말이라 귀찮나보다..

여담

회사 가기 싫다
https://github.com/heyggun/Coding_test/blob/main/coding_test/2023.01.15.ipynb

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글