반응형
출처) http://www.pythonchallenge.com/index.php
- 파이썬 챌린지 레벨1 문제!
- 이번 URL은 map.html로 되어있다.
- 이미지를 보면
K->M
O->Q
E->G
- 라고 노트에 적혀 있고, 알 수 없는 보라색 문자열이 있다.
- 뭔가 문자열 치환하는 문제같아 보인다.
- K를 M으로 바꾸고, O를 Q, E를 G로 바꾼다고 해도 보라색 문자열은 알 수 없는 문자열이 된다.
- 문자열을 나열해서 보니 원리가 보인다.
K L M
O P Q
E F G
- 두 칸씩 건너뛰는 것이다. 손으로 일일이 치환해서 풀기엔 문자열이 너무 많기 때문에 파이썬으로 구현해보았다.
- 3줄이면 된다.
ss="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."
rst=ss.translate(str.maketrans('abcdefghijklmnopqrstuvwxyz','cdefghijklmnopqrstuvwxyzab'))
print(rst)
파이썬 maketrans () 메서드는 두 개의 매개 변수를내어, 문자 매핑 변환 테이블을 만드는 데 사용되는 가장 쉬운 방법이 호출, 첫 번째 인수가되고, 두 번째 매개 변수는 변환의 문자열 표현입니다.
str.maketrans(intab, outtab)
-intab - 실제 문자열이 갖고 있는 원래 문자열
-outtab - 매핑 문자를 갖고 있는 문자열
참고) http://www.w3big.com/ko/python/att-string-maketrans.html
- translate는 문자열 안의 문자를 다른 문자로 바꾼다. 즉, 치환의 원리(실제 문자열, 두칸씩 건너뛴 문자열)를 maketrans테이블을 만들고, translate함수로 보라색 문자열에 치환을 적용한다.
- "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."
- 치환결과 문자열에도 maketrans함수를 사용하라고 적혀있다. 이제 url를 구현한 거에 적용하면된다.
-
답 : ocr
- 상단 URL을 http://www.pythonchallenge.com/pc/def/ocr.html 로 바꾸어 보면 다음 레벨 문제가 나온다.
반응형
'#WarGame > Python Challenge' 카테고리의 다른 글
Python Challenge # LV.5 (pickle) (0) | 2020.08.20 |
---|---|
Python Challenge # LV.4 (0) | 2020.08.18 |
Python Challenge # LV.3 (0) | 2020.08.17 |
Python Challenge # LV.2 (0) | 2020.08.17 |
Python Challenge # LV.0 (0) | 2020.08.16 |