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

yewon Lee·2023년 10월 10일
0


😎코딩테스트 연습>연습문제>시저 암호


📘 문제풀이

def solution(s, n):
    answer = ''
    
    a = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P", "Q","R","S","T","U","V","W","X","Y","Z"]

    for i in s:
        if i.islower():
            i = i.upper()
            idx = (a.index(i)+n)%26
            answer += a[idx].lower()
        elif i.isupper():
            idx = (a.index(i)+n)%26
            answer += a[idx]
        else:
            answer += i
            
    return answer
1차원적인 접근으로 풀었던 방법
알파벳은 26개... 기억하자...😊

다른 사람의 풀이

아스키코드로 변환하는 함수

  • ord(문자) : 하나의 문자를 인수로 받고 해당 문자의 유니코드 정수 반환 (ex. ord('a') -> 97)
  • chr(문자) : 하나의 정수를 문자로 받고 해당 정수의 유니코드 문자 반환 (ex. chr(97) -> 'a'
    인자(정수)의 유효 범위는 0 ~ 1,114,111 (16진수 0x10 FFFF)까지
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)
profile
시작

0개의 댓글