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 해보았다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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 |