[프로그래머스] - 시저암호(Python)
문제📝
풀이💡
- 문자열 s를 리스트 형태로
강제 타입 변환
을 한다.- i가 공백이라면 그대로 공백을 answer에 넣어준다.
isupper()
를 이용해서 대문자를 판단하고 맞다면ord(i)
+n의 값이Z의 아스키코드인 90
을 초과하면26
을 빼주고 그렇지 않으면 그대로 더한 값을chr()
형태로 answer에 넣어준다.- 소문자라면
ord(i)+n
의 값이z의 아스키코드인 122
를 초과하면26
을 빼주고 그렇지 않으면 그대로 더한 값을chr()
형태로 answer에 넣어준다.join
을 통해서 리스트를 합쳐서 반환한다.
코드💻
# 프로그래머스 Lv1 - 시저 암호
# 문제링크: https://programmers.co.kr/learn/courses/30/lessons/12926
def solution(s, n):
answer = []
arr = list(s)
for i in arr:
if i == ' ':
answer.append(chr(ord(i)))
else:
if i.isupper() ==1:
# i가 대문자가 맞다면
if ord(i)+n>90:
answer.append(chr(ord(i)+n-26))
else:
answer.append(chr(ord(i)+n))
else:
# i가 소문자가 맞다면
if ord(i)+n>122:
answer.append(chr(ord(i)+n-26))
else:
answer.append(chr(ord(i)+n))
return "".join(answer)
결과😎
느낀점👨💻
위 문제를 풀기 위해서 알파벳의 아스키코드를 검색하고 영어 문자로 바꿔주는 chr()를 알게 되고 정수 형태로 바꿔주는 ord()도 알게 되었다. 두 메소드를 적용해서 문제를 쉽게 해결할 수 있었다.
Sinbmil의 알고리즘 문제 코드
-> https://github.com/Sinbmil/Algorithm-Study
Author And Source
이 문제에 관하여([프로그래머스] - 시저암호(Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sinbmil/프로그래머스-시저암호Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)