python challenge level5
2009. 8. 27. 00:20
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 |