[Python Challenge] 파이썬 챌린지 - 1
<map>
위와 같은 사진과 함께 아래와 같은 메시지를 볼 수 있다.
everybody thinks twice before solving this.
g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj. |
역사나 암호에 관심이 있는 사람이라면, 이것이 카이사르 암호(시저 암호)의 일종이라는 것을 알아챌 수 있을 것이다.
암호화를 진행하게 되면
ABCDEFGHIJKLMNOPQRSTUVWXYZ가
CDEFGHIJKLMNOPQRSTUVWXYZAB의 순서가 되어 뒤로 두 순서씩 미루어 지는 규칙을 확인 할 수 있다.
이제 우리가 해야 할 일은 위에 언급된 글을 다시 복호화 시키는 것이다.
복호화 하기 위해 아래와 같은 코드를 짰다.
input_str = """g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj""" |
실행해 보면
i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string.maketrans() is recommended. now apply on the url |
위와 같은 메시지가 출력된다.
String.maketrans()란 함수를 쓰면 더 쉬울 것이다…. 라는(빠직)
사실 위의 글에서
'이 문제를 풀기 전에 모두 두 번씩 생각해라'
라는 의미에서 알 수 있듯이, 문제를 푸는 건 바로!!
아래가 아니라 위였던 것 이였다!!! ㅜㅜ
이제라도 빨리 푸는 방법을 알았으니 위에 있는 문제를 풀어보자.
위의 주소 창의 주소는 http://www.pythonchallenge.com/pc/def/map.html 이기 때문에 바꿀 문자열은
"map"이다.
이를 바꾸는 프로그램을 작성하면
위와 같이 아주 단순하게 작성 할 수 있다.
실행하면 'ocr'이 나오게 된다.
http://www.pythonchallenge.com/pc/def/ocr.html