honey_pot

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

문제 풀이

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

_tera_ 2021. 6. 23. 21:53

실패한 코드 : 대문자 + 30 이런 경우를 생각하지 못했다 ㅎㅎ... 채점 결과 61퍼 나옴

def solution(s, n):
    answer = ''
    for i in range(len(s)):
        if s[i] == " ":
            answer += " "
        else:
            temp = ord(s[i])+n
            if 90 < temp < 97:
                answer += chr(65+(temp-91))
            elif temp > 122:
                answer += chr(97+(temp-123))
            else:
                answer += chr(temp)
    return answer

 

답안 : 26으로 나누는 부분이 정말 놀랍다 어떻게 저런 생각을..

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)

 

'문제 풀이' 카테고리의 다른 글

[Python] 같은 숫자는 싫어  (0) 2021.07.01
[python] 2016년  (0) 2021.06.23
[python] 백준 1789번  (0) 2021.06.08
[python] 백준 1934번  (0) 2021.06.08
[python] 백준 10886번  (0) 2021.06.08
Comments