ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
ROT13์ ๋ฌธ์๊ฐ ์ ๋ ฅ๋๋ฉด ์๋ฌธ์, ๋๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ฌ ๊ฐ ๋ฌธ์๋ก ๋ถํฐ 13๋ฒ์งธ ์ดํ์ ์ํ๋ฒณ์ผ๋ก ๋ณ๊ฒฝํ๋ ์ํธํ ๋ฐฉ์์ด๋ค. ํด๋น ์ํธํ ๋ฐฉ์์ ๊ตฌํํ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ์ ์๋ค.
- ์๋ฌธ์์ ๋๋ฌธ์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๊ธฐ ์ํ ๋์
๋๋ฆฌ๋ฅผ ์ด๊ธฐํ ํ๋ค.
- stirng ์์๋ฅผ ํ์ฉํ๋ฉด ์ข๋ค.
- ๋๋ฌธ์๋ ASCII์ฝ๋ 65 ๋ถํฐ, ์๋ฌธ์๋ 97 ๋ถํฐ ์์ํ๋ฏ๋ก ์ด๋ฅผ ํ์ฉํ์ฌ +13๋ ๊ฐ์ ์ฐพ๋๋ค.
์ฝ๋
import string
LOWER = {c: idx for idx, c in enumerate(string.ascii_lowercase)}
UPPER = {c: idx for idx, c in enumerate(string.ascii_uppercase)}
IDX, ALPHA = 0, 1
def encrypt(c, lower):
lst = UPPER
factor = 65
if lower:
factor = 97
lst = LOWER
return chr(factor + ((lst[c] + 13) % 26))
def rot13(source):
ret = ""
for c in source:
if c.isupper():
ret += encrypt(c, False)
elif c.islower():
ret += encrypt(c, True)
else:
ret += c
return ret
if __name__ == '__main__':
print(rot13(input()))
์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ ์ถ ํ์ ์๊ฐํด๋ณด๋ ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋ค ๋ ์ธ๋ฑ์ค๊ฐ ์๋ ์์คํค๋ก ์ด๊ธฐํ ํ์ผ๋ฉด ๋ ๊น๋ํ ๊ฑฐ ๊ฐ๋ค. ์์ฝ๋ฉ์ ๋ฐ์ดํธ ์๊ฐ 51B๊ฐ ์์ด์ ์ด๊ฑด ์ด๋ป๊ฒ ์ง ๊ฑฐ์ง...? ํ๊ณ ๋ค์ด๊ฐ ๋ดค๋๋ฐ built-in function ์ค์ rot13์ด ๊ตฌํ๋์ด ์์๋ค...
codecs๋ก ๊ตฌํํ ํ์ด
import codecs
print(codecs.encode(input(),"rot13"))
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 1676 ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ (0) | 2020.06.25 |
---|---|
๋ฐฑ์ค: 6588 ๊ณจ๋๋ฐํ์ ์ถ์ธก (0) | 2020.06.25 |
๋ฐฑ์ค: 1935 ํ์ ํ๊ธฐ์2 (0) | 2020.06.24 |
๋ฐฑ์ค: 1918 ํ์ ํ๊ธฐ์ (0) | 2020.06.24 |
๋ฐฑ์ค: 10799 ์ ๋ง๋๊ธฐ (0) | 2020.06.23 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ