python challenge level5
http://www.pythonchallenge.com/pc/def/peak.html
pronounce it 이라고 적혀진 페이지가 있다.
소스를 보면 아래의 내용을 볼 수 있다.
<peakhell src="banner.p"/>
<!-- peak hell sounds familiar ? -->
banner.p 파일을 다운받아서 보았지만 별다른 힌트는 없어보였다
peakhell 이 도대체 뭘까.. 이리저리 고민하다가 forum의 hint 페이지를 찾아보았다.
(http://www.pythonchallenge.com/forums/)
힌트 없냐는 말에 누군가가 "Try browsing "Global Modules Index" 라는 코멘트를 달아놓았다.
Global Module 중에 peakhell과 비슷한 발음이 나는 녀석을 찾다보니 PICKLE 이라는 녀석이 있었다.
PICKLE 에 대한 설명은 http://docs.python.org/library/pickle.html 에서 볼 수 있다.
간략히 말하면 pickle module은 python object serialization 으로 파이썬 객체를 바이트 스트림으로 바꿀 수 있다. (unplckling 이라 하면 이 반대의 과정을 의미한다)
이점에 착안해서 banner.p를 읽어와서 이를 unpickling 해보았다.
import pickle f = open("banner.p",'rb') result = pickle.load(f) list_length = len(result) i=0 temp = () while i < list_length: tuple_length = len(result[i]) j = 0 word = '' while j < tuple_length: temp = result[i][j] j+=1 k = 0 while k < temp[1]: if temp[0] ==' ': word += ' ' else: word += temp[0] k+=1 print word i+=1
코드를 수행하면 banner command를 실행한 것처럼 channel 이라고 크게 찍히는 문자열을 볼 수 있다.
http://www.pythonchallenge.com/pc/def/channel.html
'War game > pythonchallenge' 카테고리의 다른 글
pythonchallenge level11 (0) | 2009.10.22 |
---|---|
pythonchallenge level10 (0) | 2009.10.20 |
pythonchallenge level9 (0) | 2009.10.16 |
pythonchallenge level8 (0) | 2009.10.16 |
pythonchallenge level7 (0) | 2009.10.16 |
python challenge level6 (0) | 2009.09.21 |
pythonchallenge level4 (0) | 2009.08.20 |
pythonchallenge level3 (0) | 2009.08.19 |
pythonchallenge level2 (0) | 2009.08.17 |
pythonchallenge level1 (0) | 2009.08.17 |