첫번째 코드
알파벳에 숫자를 더하면 그만큼 미뤄진 알파벳이 나오는 코드가 있을 것 같은데....해서 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인 만큼 비슷한 문제를 풀어봐야겠징
링크
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 |