티스토리 뷰
728x90
https://www.acmicpc.net/problem/4446
4446번: ROT13
간달프는 여러 종족의 언어를 꽤 오랜 시간 동안 공부했다. 최근에 간달프는 해커들이 사용하는 언어인 ROT13을 공부했다. 이 언어는 영어와 문법이 같지만, 알파벳의 순서를 어떤 규칙을 이용해
www.acmicpc.net
입력 문자가 "여러 줄" 인 점을 고려해야합니다.
try catch문으로 여러 줄을 받게 만들면 나머지는 쉬운 구현문제입니다.
예시 1 2 3 4 5 6
^ ^
end st
부연 설명 : 길이 6인 배열의 4번 인덱스에서 -3만큼 이동 > 1번 인덱스로 이동
4 - 3 = 1
(4 + 3) % 6 = 1
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
|
a = ['a', 'i', 'y', 'e', 'o', 'u']
b = ['b', 'k', 'x', 'z', 'n', 'h', 'd', 'c', 'w', 'g', 'p', 'v', 'j', 'q', 't', 's', 'r', 'l', 'm', 'f']
while True:
try:
S = input()
ans = ''
for i in range(len(S)):
if 65 <= ord(S[i]) <= 90:
tmp = S[i].lower()
if tmp in a:
idx = (a.index(tmp) + 3) % len(a)
ans += a[idx].upper()
else:
idx = (b.index(tmp) + 10) % len(b)
ans += b[idx].upper()
elif 97 <= ord(S[i]) <= 122:
if S[i] in a:
idx = (a.index(S[i]) + 3) % len(a)
ans += a[idx]
else:
idx = (b.index(S[i]) + 10) % len(b)
ans += b[idx]
else:
ans += S[i]
print(ans)
except:
break
|
cs |
'코딩 > 파이썬 백준' 카테고리의 다른 글
백준 1351 무한 수열 (파이썬) (0) | 2022.05.22 |
---|---|
백준 13335 트럭 (파이썬) (0) | 2022.05.21 |
백준 20362 유니대전 퀴즈쇼 (파이썬) (0) | 2022.05.13 |
백준 9204 맥주 마시면서 걸어가기 (파이썬) (0) | 2022.05.04 |
백준 12034 김인천씨의 식료품가게(Large) (파이썬) (0) | 2022.05.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준 23253 파이썬
- 백준 1916
- 백준 13335
- 백준 6593
- 백준 11123
- 백준 2304
- 백준 12788
- 백준 4446
- 백준 10825
- 백준 1351
- 백준 9205
- 백준 13335 파이썬
- 백준 2075
- 백준 2304 파이썬
- 백준 1504 파이썬
- 백준 10825 파이썬
- 백준 1351 파이썬
- 백준 23253
- 백준 12788 파이썬
- 백준 1916 파이썬
- 백준 2491 파이썬
- 백준 20362
- 백준 9205 파이썬
- 백준 6593 파이썬
- 백준 12034
- 백준 4446 파이썬
- 백준 2075 파이썬
- 백준 11123 파이썬
- 백준 20362 파이썬
- 백준 12034 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함