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 |
Tags
- CUDA
- Classification Task
- 자연어처리
- Word2Vec
- 수기
- 인공지능
- 우울증
- 품사태깅
- pytorch
- naver movie review
- 대학원
- 전처리
- sentiment analysis
- word embedding
- NLP
- 석사
Archives
- Today
- Total
슬기로운 연구생활
[프로그래머스] 시저 암호 본문
* 문제
programmers.co.kr/learn/courses/30/lessons/12926
코딩테스트 연습 - 시저 암호
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가
programmers.co.kr
* 문제 풀이
- 첫째, ord를 사용해서 문자열을 ascii 코드로 변환한다.
- 둘째, n만큼 추가한다.
- 셋째, 조건문을 사용해 대문자 Z 범위를 넘어가는 경우 -26을 해서 A부터 시작하게 한다. 마찬가지로 소문자 z 범위를 넘어가는 경우 -26을 해서 a부터 시작하게 한다.
- 넷째, chr를 사용해 ascii 코드를 문자열로 바꾼다.
* 생각
- chr과 ord를 알게되었다.
- 다른 사람풀이를 보니까 대문자 소문자 파악하는 것을 islower()과 isupper()로 체크했다. 참고하자.
* 코드
def solution(s, n):
answer = ''
for i in range(0, len(s)):
ascii = ord(s[i])
ascii += n
if ascii > 90 and ord(s[i]) > 64 and ord(s[i]) < 91:
ascii -= 26
elif ascii > 122 and ord(s[i]) > 96 and ord(s[i]) < 123:
ascii -= 26
elif ord(s[i]) == 32:
ascii = 32
temp_char = chr(ascii)
answer += temp_char
return answer
'슬기로운 코테 생활' 카테고리의 다른 글
[프로그래머스] 이상한 문자 만들기 (0) | 2020.12.11 |
---|---|
[프로그래머스] 약수의 합 (0) | 2020.12.10 |
[프로그래머스] 수박수박수박수박수박수? (0) | 2020.12.08 |
[프로그래머스] 소수 찾기 (0) | 2020.12.07 |
[프로그래머스] 서울에서 김서방 찾기 (0) | 2020.12.03 |
Comments