링크 : https://www.acmicpc.net/problem/11655
11655번: ROT13
첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.
www.acmicpc.net
- 문제
- 소요시간: 10분 20초
- 설계하기(접근방법)
1. 입력받기
문자열을 입력받는다
2. 구현하기
문자가 대문자인 경우
문자가 소문자인 경우
아닌 경우로 나눈다
대문자인 경우에는 대문자 리스트에서 위치를 찾은 후
해당 위치 += 13을 해준다
만약 25(z의 위치를 넘어가는 경우)
26으로 나눈 몫을 적용한다
소문자도 같은 플로우고
나머지 케이스는 그냥 출력하면 된다
3. 출력하기
- 코드(출력)
from string import ascii_lowercase, ascii_uppercase
n = input()
for i in n:
if i in ascii_uppercase:
index = ascii_uppercase.find(i)
index += 13
if index > 25:
index = index % 26
print(ascii_uppercase[index], end='')
elif i in ascii_lowercase:
index = ascii_lowercase.find(i)
index += 13
if index > 25:
index = index % 26
print(ascii_lowercase[index], end='')
else:
print(i, end='')
- 얻어갈 부분
1. ascii 를 잘 활용했다
'알고리즘(백준)' 카테고리의 다른 글
[알고리즘/문자열] 20920번 : 영단어 암기는 괴로워 - python (0) | 2024.01.21 |
---|---|
[알고리즘/문자열] 1032번 : 명령 프롬프트 - python (1) | 2024.01.21 |
[알고리즘/문자열] 2870번 : 수학숙제 - python (0) | 2024.01.20 |
[알고리즘/문자열] 1159번 : 농구 경기 - python (0) | 2024.01.19 |
[알고리즘/수학] 3474번 : 교수가 된 현우 - python (1) | 2024.01.16 |