반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 운영체제
- programmers
- 프로그래머스 #카카오 #IT #코딩테스트
- Java
- 쿠버네티스
- springboot
- Spring
- Linux
- 네트워크
- IT
- 자바
- DPDK
- docker
- 스프링
- 파이썬
- 도커
- Elasticsearch
- C
- 리눅스
- 알고리즘
- Python
- 캐시
- 코딩테스트
- Kakao
- 엘라스틱서치
- 카카오
- 개발자
- 스프링부트
- 백엔드
- 프로그래머스
Archives
- Today
- Total
저고데
[프로그래머스]시저암호 본문
728x90
반응형
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12926
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
본 문제를 간단하게 요약하면 다음과 같다.
알파벳으로만 이루어진 문자열이 담긴 배열 s와 숫자 n이 주어진다.
시저암호는 해당 알파벳을 n만큼 증가시킨 것을 의미한다.
이 때, s를 n만큼 증가시킨 암호를 반환하는 것이다.
예를 들어서, s="A B z", n=1인 경우, "B C a"로 반환하면 되는 것이다.
코드를 작성하기 위한 순서는 다음과 같다.
1. 소문자와 대문자를 구별하기 위해 각각의 문자열을 하나 만들어준다.
2. 공백은 따로 증가시키지 않고 유지하기 때문에 그냥 넘어가준다.
3. 해당 문자의 인덱스는 몇 번째인지 구해준다.
4. 인덱스 + n을 했을 때, 배열을 벗어나면 벗어난만큼 처음부터 시작하여 지정해주기 때문에, (index + n) % 26(알파벳 총 갯수)를 해줘서 circular que 꼴로 만들어준다.
def solution(s, n):
answer = ''
big='ABCDEFGHIJKLMNOPQRSTUVWXYZ' #1번
small='abcdefghijklmnopqrstuvwxyz'
for i in s:
if i==' ': #2번
answer+=i
elif i in big:
dex=big.index(i) #3번
newdex=(dex+n)%26 #4번
answer+=big[newdex]
else:
dex=small.index(i)
newdex=(dex+n)%26
answer+=small[newdex]
return answer
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스]위장 (0) | 2023.01.18 |
---|---|
[프로그래머스]문자열 내 마음대로 정하기 (1) | 2023.01.18 |
[프로그래머스]행렬의 덧셈 (0) | 2023.01.18 |
[프로그래머스]보석 쇼핑 (0) | 2023.01.17 |
[프로그래머스]메뉴 리뉴얼 (0) | 2023.01.17 |