Write-up

[Python Challenge] level 6

ch4rli3kop 2019. 4. 13. 22:03
반응형

python challenge 6

??? 하며 해매다 주석처리된 zip보고 킹리적 갓심으로 channel.zip해보니 zip파일이 있었다. 압축 푼 뒤, readme를 읽어보면 다음과 같다.

welcome to my zipped list.

hint1: start from 90052
hint2: answer is inside the zip

4와 어느정도 비슷하게 진행되는 문제인 것 같다. 그리하야 끝까지 가보았으나, 다음과 같은 문자열만 있었다.

Next nothing is 45100
Next nothing is 68628
Next nothing is 67824
Next nothing is 46145
Collect the comments.

또 해매다가 어찌어찌 zip 파일에도 comment 란이 있었다는 걸 상기해낸 후, zipfile 모듈을 통해 쉽게 읽어들일 수도 있다는 걸 알아냈다.

#!/usr/bin/python3
import urllib.request, re, zipfile, io

data = urllib.request.urlopen('http://www.pythonchallenge.com/pc/def/channel.zip').read()
zfile = io.BytesIO()
zfile.write(data)
z = zipfile.ZipFile(zfile, 'r')

r = re.compile(r'Next nothing is (\d+)')
nothing = '90052'

result = ''
while True:
   data = z.read(nothing + '.txt').decode('utf-8')
   print(data)
   result += z.getinfo(nothing + '.txt').comment.decode('utf-8')
   if r.match(data):
       nothing = data.split(' ')[-1]
   else:
       break
print(result)

그리하야 www.pythonchallenge.com/pc/def/hokey.html에 가보면 다음과 같은 문자열을 얻을 수 있다.

it's in the air. look at the letters. 

공기에 있는 거라고 하는데, hockey를 자세히 보면 'oxygen'이란 단어를 얻을 수 있다.

next : http://www.pythonchallenge.com/pc/def/oxygen.html solution : http://www.pythonchallenge.com/pcc/def/oxygen.html

반응형

'Write-up' 카테고리의 다른 글

[Python Challenge] level 8  (0) 2019.04.13
[Python Challenge] level 7  (0) 2019.04.13
[Python Challenge] level 5  (0) 2019.04.13
[Python Challenge] level 4  (0) 2019.04.13
[Python Challenge] level 3  (0) 2019.04.13