본문 바로가기

#WarGame/Python Challenge

Python Challenge # LV.2

반응형

출처) http://www.pythonchallenge.com/index.php

 

The Python Challenge

What people have said about us: "These sorts of things are in my opinion the best way to learn a language.", brberg at Media Cloisters "It's the best web site of the year so far.", Andy Todd at halfcooked "Addictive way to learn the ins and outs of Python.

www.pythonchallenge.com

 

http://www.pythonchallenge.com/pc/def/ocr.html

[그림1. LV.2 문제]

 

  • 파이썬 챌린지 레벨2 문제!
  • 글자가 흐린책 이미지와 빨간색 문자열이 있다.

"recognize the characters. maybe they are in the book,
but MAYBE they are in the page source."

 

 "특징들을 인식해라. 아마도 그들은 책 속에 있을 것이다. 하지만, 아마도 그들은 페이지소스에 있을 것이다."

 

  • 힌트가 페이지 소스인 것 같다.

 

[그림2. page source]

 

  • 페이지소스 마지막에 주석으로 처리된 게 있다.
  • "find rare characters in the mess below:"
  • 아래 엉망진창인 상태에서 희귀한 문자를 찾으십시오.
  • 알 수 없는 특수문자사이에 문자가 숨겨져 있는 것 같다.

 

[그림3. 정규표현식]

메소드 설명
complie(pattern) 정규식 pattern을 컴파일하여 정규식 객체를 리턴, 성능향상을 위해 정규식을 컴파일해서 사용하는 것을 권장.
match(pattern,text,flags=0) pattern을 text 시작부터 매칭 수행, 성공하면 match 객체를 리턴, 실패하면 none을 리턴
search(pattern,text,flags=0) text에서 pattern이 처음 나타난 부분을 검색
findall(pattern,text,flags=0) text에서 pattern과 일치하는 모든 문자열 검색, 검색한 결과는 리스트로 리턴

참고) 화이트해커를 위한 암호와 해킹 

 

 

 

  • 다른 접근 방법으로는 데이터의 개수를 셀 때 유용한 파이썬의 collections 모듈의 Counter 클래스이다.
  • 페이지소스의 주석문자의 개수를 세는 것이다.
  • 이 모듈은 별도 패키지 설치 없이 사용이 가능하다.

 

[그림4. Counter()]

 

반응형

'#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.1  (0) 2020.08.16
Python Challenge # LV.0  (0) 2020.08.16