반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java
- 알고리즘의 조건 5가지
- LV.1
- 들여쓰기로 표현한 트리
- 알고리즘
- 알고리즘 표현
- 과일 장수
- 코딩 테스트
- 파이썬
- Tree
- 큐
- 자바
- Combination
- Import
- 트리
- 스택
- 리스트
- 좋은 알고리즘
- import itertools
- 프로그래머스
- itertools
- html
- 태그
- list
- 유한소수 판별하기
- python
- 자료구조
- 유사코드
- 코딩테스트
- 알고리즘의 조건
Archives
- Today
- Total
인천의 자유인
[Python] 시저 암호 - 프로그래머스(Lv.1) 본문
728x90
반응형
반응형
나의 문제 풀이
def solution(s, n):
import string
answer = ''
lower_alpha = list(string.ascii_lowercase) + list(string.ascii_lowercase)
upper_alpha = list(string.ascii_uppercase) + list(string.ascii_uppercase)
for i in s:
if i.isupper() == True:
a = upper_alpha.index(i)
answer = answer + upper_alpha[a+n]
elif i.islower() == True:
a = lower_alpha.index(i)
answer += lower_alpha[a+n]
else:
answer += ' '
return answer
string.ascii_lowercase는 소문자 a부터 z까지 출력해주는 좋은 함수입니다.(import string은 필수입니다!) 이것을 두배로 만들어서 더한 숫자가 z를 넘어가고 a를 넘어갈것을 대비했습니다.(대문자도 마찬가지)
문자열 s를 한 알파벳씩 출력하도록 해서 그 알파벳이 대분자라면 upper_alpha리스트에서 i의 위치와 i에서 n씩 이동한 알파벳을 answer에 더하는 방식으로 했습니다. 그것은 소문자도 마찬가지입니다. 그리고 중간에 공백이 나올 경우엔 answer 문자열에 공백을 더해서 결국에는 원하는 값을 얻었습니다.
728x90
반응형
'Python > Python코딩테스트' 카테고리의 다른 글
[Python] 숫자 문자열과 영단어 - 프로그래머스(Lv.1) (0) | 2024.06.05 |
---|---|
[Python] 가장 가까운 같은 글자 - 프로그래머스(Lv.1) (0) | 2024.06.02 |
[Python] 최소 직사각형 - 프로그래머스(Lv.1) (0) | 2024.05.27 |
[Python] 예산 - 프로그래머스(Lv.1) (0) | 2024.05.24 |
[Python] 크기가 작은 부분 문자열 - 프로그래머스(Lv.1) (0) | 2024.05.23 |