본문 바로가기
코딩 테스트/프로그래머스

시저 암호

by ornni 2024. 4. 16.
728x90
반응형

첫번째 코드

 

알파벳에 숫자를 더하면 그만큼 미뤄진 알파벳이 나오는 코드가 있을 것 같은데....해서 GPT한테 상담을 좀 받았다..ㅎㅎ;

근데 ord라는 함수를 쓰길래...엥 너는 뭐니? 알파벳 순서를 알려주는거니? 했더니?!

 

ord() 함수는 주어진 문자의 유니코드 코드 포인트를 나타내는 정수를 반환합니다. 다시 말해, 문자열에서 주어진 문자의 순서를 나타내는 숫자를 반환하는 함수입니다.

예를 들어, ord('a')는 소문자 'a'의 유니코드 코드 포인트를 반환하며, 대부분의 경우에는 97이 됩니다. 비슷하게, ord('A')는 대문자 'A'의 코드 포인트를 반환하며, 대부분의 경우에는 65가 됩니다.

 

print(ord('a'))  # 출력: 97
print(ord('A'))  # 출력: 65
print(ord('z'))  # 출력: 122
print(ord('Z'))  # 출력: 90 라는 GPT씨의 친절한 설명이다.

 

그것을 이용해서 알파벳의 순서를 생각하면서 문제를 푼다!

그리고 공백의 경우도 신경써주도록 하자!

 

알파벳은 26개!!!

 

def solution(s, n):
    answer = ''
    for i in s:
        if i == ' ':
            answer += ' '
        elif 'a' <= i <= 'z': 
            new_char = chr((ord(i) - ord('a') + n) % 26 + ord('a'))
            answer += new_char
        elif 'A' <= i <= 'Z': 
            new_char = chr((ord(i) - ord('A') + n) % 26 + ord('A'))
            answer += new_char
    return answer

 

통과!

그래도 처음접하는 ord인 만큼 비슷한 문제를 풀어봐야겠징


링크

https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12926.%E2%80%85%EC%8B%9C%EC%A0%80%E2%80%85%EC%95%94%ED%98%B8

 

programmers/프로그래머스/1/12926. 시저 암호 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

내적  (0) 2024.04.18
약수의 합  (0) 2024.04.17
제일 작은 수 제거하기  (0) 2024.04.16
자릿수 더하기  (1) 2024.04.15
이진 변환 반복하기  (0) 2024.04.14