시저 암호
처음 오답
def solution(s, n):
answer = ""
for i in s:
if i == " ":
answer += " "
elif i == "z" or i == "Z":
answer += chr(ord(i) - 26 + n)
else:
answer += chr(ord(i) + n)
return answer
- z만 처리해 줄 것이 아니라 나머지 문자도 범위를 초과해야 하는 경우 처리를 해 줘야 했음
정답
- ord() : 아스키코드값으로 변경해줌 -> 파이썬은 c언어와 다르게 명시적으로 함수를 사용해야 함
- chr() : 아스키코드를 문자로 변경
def solution(s, n):
answer = ""
for i in s:
if i == " ":
answer += " "
elif i.islower():
answer += chr((ord(i) - ord('a') + n) % 26 + ord('a'))
elif i.isupper():
answer += chr((ord(i) - ord('A') + n) % 26 + ord('A'))
return answer
'Algorithm' 카테고리의 다른 글
문자열 내맘대로 정렬하기 / 프로그래머스 (0) | 2025.02.05 |
---|---|
숫자 문자열과 영단어 / 프로그래머스 (0) | 2025.02.01 |
최소직사각형 / 프로그래머스 (0) | 2025.01.24 |
2606 바이러스 / DFS,BFS (0) | 2025.01.22 |
크기가 작은 부분 문자열 / 프로그래머스 (0) | 2025.01.21 |