알고리즘/프로그래머스

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

정석이 2022. 3. 1. 20:46

 

https://programmers.co.kr/learn/courses/30/lessons/12926?language=python3 

 

코딩테스트 연습 - 시저 암호

어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀

programmers.co.kr

 

 

 

 

문제

 

 

 


 

내일부터 파이썬을 배우게 돼서 파이썬으로 풀어보았다.

 

 

 

파이썬은 i in range 이런거만 알아서.. 걍 딴사람꺼 봤다. 함수 넘 마나

 

 

 

 

'''
list() = 리스트에 하나씩 넣음
ord(문자) = 유니코드 정수 반환 , ord('a') = 97
chr(숫자) = 정수 유니코드 반환, chr(97) = 'a'
len(문자) = 문자열 길이
join(리스트) = , ex) ['a', 'b', 'c'] -> 'abc'로 합침 
'''

def solution(s, n):
    s = list(s)
    for i in range(len(s)):
        if s[i].isupper():
            s[i] = chr((ord(s[i]) - ord('A') + n) % 26 + ord('A'))
        elif s[i].islower():
            s[i] = chr((ord(s[i]) - ord('a') + n) % 26 + ord('a'))
    
    return "".join(s)

 

 

 

주석 다는법 : # , """ .. """ , ''' .. ''' 이렇게 3가지이고

 

 

나머지 함수들은 주석으로 달아놓았다.

 

 

 


 

 

 

 

 

find() 함수 쓰면 몇번째에 있는지 찾아줌

 

 

 

 

자바로 은근 많이 풀어서 잘 풀고 있었는데.... 어쩌다보니 바꾸게 될 것 같다.

 

 

그래도 화이팅해야지..!ㅋㅋㅋ

 

 

수업 들어도 1일 1코딩 하려고 계속 노력해야겠다!