문제 URL : http://www.pythonchallenge.com/pc/def/map.html

위 문제로 접속하면 아래와 같은 이미지가 출력된다.




이미지에 있는 노트를 보면 어떠한 문자가 어떠한 문자로 치환되는지 알 수 있다. 메모장으로 치환문자들을 써놓고 보면 일정한 규칙이 보이는데 해당 규칙에 따라 치환된 문자들을 만들어보면 아래와 같다.


해당 규칙을 토대로 코딩을 할 수 있긴 하겠지만 코드가 길어져 파이썬에는 문자 치환 함수가 없을까 하고 검색해봤지만 나오지 않아 고민하던 중 문제에 qrpgle.kyicrpylq() 이런 문구가 보여 규칙을 토대로 치환해 보기로 하였다.

치환한 결과는 아래와 같다.




파이썬 shell에서도 있는걸로 보아 이 문제에 핵심인거 같아 구글링 하여 찾아보니 이 함수가 문자열 치환 함수였다.

이 함수를 이용하여 아래와 같은 코드를 작성하여 치환문자를 다시 복호화 했다.



복호화하고 보니 문제에서는 string.maketrans()(함수 Ref : http://maj3sty.tistory.com/749)를 이용하여 url을 바꿔보라고 하였다.

URL전체를 바꾸면 접속자체가 안될 것이니 문제서버에서 바꿔도 될만한 html 파일 이름을 바꾸기로 하여 map글자를 다시 한번 바꿔보기로 하였다.

아래는 최종 소스코드와 결과물이다.




map -> ocr로 변경되어 다음 문제 url이 된다.

'[+] Information > [-] Python' 카테고리의 다른 글

level 3  (0) 2011.10.23
level 2  (0) 2011.10.23
level 1  (0) 2011.10.23
level 0  (0) 2011.10.23
열혈강의 파이썬 잘못된 소스부분.  (2) 2009.08.23

+ Recent posts