http://www.pythonchallenge.com/pc/rock/python.html

 

 

 

 

 

 

문제인가 싶어서 소스 코드를 보았습니다

 

그랬더니 최종 목적지 였습니다

 

나이스 풀었다!!!

http://www.pythonchallenge.com/pc/rock/arecibo.html

 

 

 

 

 

 

 

재밌는 게임과 함께 이번엔 동적인 웹이다

 

 

 

소스 코드를 다운받아 보겠다

 

view-source:http://www.pythonchallenge.com/pc/rock/warmup.txt

 

# Dimensions
9 9

# Horizontal
2 1 2
1 3 1
5

7
9
3

2 3 2
2 3 2
2 3 2

# Vertical
2 1 3
1 2 3
3

8
9
8

3
1 2 3
2 1 3

 

출처: <http://www.pythonchallenge.com/pc/rock/warmup.txt>

 

 

이게 무엇을 의미하는 걸까?

 

아까 퍼즐과 관련있을 같다

 

퍼즐에 나와있는대로 문제를 풀어보니

 

 

 

이러한 결과를 얻을 있었다

 

나무??? ???? 트리???

입력해보았다

 

정답은 up!! 그것도 텍스트 였다…..

 

Up.txt….

 

그래서 다시 풀어보면

 

 

 

 

결과가 뱀같은 모양으로 나오는 확인 있습니다

 

Snake 다음 라운드 같습니다

 

인줄 알았지만 404 뜨는 바람에 조금 해맸습니다 생각해보니 파이썬이 뱀과 관련이 있었습니다

 

 

그냥 아무 생각없이 검색했는데

 

 

 

파이썬 로고가 뱀과 관련있다는 것을 깨달았습니다 그래서 python 으로 변경하였습니다

 

 

http://www.pythonchallenge.com/pc/rock/python.html

 

다음 링크 입니다

 

고고고

 

뭔가 점검 쉬워지는 것 같은데 저만 그렇게 느끼나요?

 

아마 문제 내는 사람도 점점 문제가 고골되는 듯...

 

 

도데체 끝은 어디? ㅠㅠ

http://www.pythonchallenge.com/pc/ring/grandpa.html

 

 

 

 

 

돌입니다 무식하게

 

 

 

 

와우 힌트가 있습니다 내가 어디에 있는지와 함께

 

 

 

링크를 클릭할 경우 새롭게 물어 봅니다

 

그렇다면 계정 정보가 여기 어딘가에 숨어 있을 것으로 판단됩니다

 

찾아보니 저기가 어딘지에 대해 묻는 거엿다

 

Kohsamui

thailand

 

 

태국의 코사무이 섬을 일컫는 것이었다

 

이렇게 치면 들어갈 있는데

 

 

 

이렇게 나옵니다

 

 

 

페이지 소스의 경우 힌트가 있습니다 예전 카우가 나왔던 것을 기억해보면 쉽습니다

 

 

 

https://en.wikipedia.org/wiki/Mandelbrot_set

https://en.wikipedia.org/wiki/Arecibo_message

 

여기를 참조하기 바란다

어쩌다가 검색하다 보니 여기까지 버렸다

 

정답은 arecibo 이다

 

 

http://www.pythonchallenge.com/pc/rock/arecibo.html

http://www.pythonchallenge.com/pc/ring/yankeedoodle.html

 

 

여기는 무엇일까요?

 

 

 

 

 

 

 

 

 

Csv 파일을 있을 것이라고 한다

 

http://www.pythonchallenge.com/pc/ring/yankeedoodle.html

 

다운로드를 받아봅시다

http://www.pythonchallenge.com/pc/ring/yankeedoodle.csv

 

다운로드 받으면

 

 

 

 

이부분을 이제 해석해 봅시다

 

데이터들을 변환해서 돌려보기 전 규칙을 먼저 찾아봅니다

 

모두 일정한 범위 내에서 수를 가지고 있는 것으로 보임

 

그럼 뭐 아스키 코드를 활용할 수 있음

 

공식에 따르면 3개 점수로 한 조씩 6/6/7번째 숫자를 취하여

 

하나의 새로운 수치를 얻었으며, 그 수치를 ASCII로 전환하여 출력


예를 들어, 세 개의 부동점이 각각 0.82207, 0.91181, 0.88563.의 경우

 

각각 한 명씩, '0', '8', '3'을 조합하여 얻는다083 해당 ASCII는 S이다.

 

 

위와 같이 얻을 있습니다

 

결과로 grandpa

 

http://www.pythonchallenge.com/pc/ring/grandpa.html

 

Gogo

 

 

 

 

http://www.pythonchallenge.com/pc/ring/guido.html

 

 

 

 

 

 

 

 

누구냐 라고 묻는 같다

 

여기서 보면 slient 해보라는 같다

 

그럼 프로그램을 짜보면

 

 

 

이러한 결과를 얻을 있습니다

 

이제 슬슬 대충 보기만 해도 머릿속에 알아서 예상되서 나오는 것 같다

 

어떻게 구스할지?

어떻게 문제를 풀어갈지?

어떻게 접근하는지?

 

여러 경로로 학습하다 보니

 

뻔하다고 해야하나?

 

그냥 이런식으로 풀어도 되나 싶다

 

나중에 다른 워게임도 해봐야지

 

그건 그렇고 다음으로 넘어다가면

 

http://www.pythonchallenge.com/pc/ring/yankeedoodle.html

 

 

 

http://www.pythonchallenge.com/pc/ring/bell.html

 

 

 

 

 

 

 

이렇게 내용을 어떻게 바꿀 있을

 

 

 

 

이렇게 소스 코드가 되어있는데 ring-ring-ring 일아야 겠다 또한 짝을 찾으란다

 

 

http://www.pythonchallenge.com/pc/ring/green.html

 

그린이라는 말이 나온다

 

그 다음은 뭔지 고민해본 결과

 

이전 문제들과 같이 반복이지 않을까 싶었다

 

 

from PIL import Image

im = Image.open('bell.png')

# split RGB and get Green
green = list(im.split()[1].getdata())

# calculate diff for every two bytes
diff = [abs(a - b) for a, b in zip(green[0::2], green[1::2])]

# remove the most frequent value 42
filtered = list(filter(lambda x: x != 42, diff))

# convert to string and print out
print(bytes(filtered).decode())

3번 울린다는 점, 그리고 그린만 추출한다는 점으로 하번 추측해서 짜 보았다

 

해보면 결과는 guido 란다 이걸 해보자

 

 

http://www.pythonchallenge.com/pc/ring/guido.html

다음으로 이동 있다

 

http://www.pythonchallenge.com/pc/hex/speedboat.html

 

 

 

 

 

 

 

 

 

이제 소스 코드를 보자

 

 

이번에는 무엇일까?

 

 

 

 

 

http://www.pythonchallenge.com/pc/hex/zigzag.gif

 

무슨 개같은 이미지가 나온다

 

 

 

이걸 풀어보면 이렇게 나온다

 

14 반복되지 않는 것을 찾으면 된다는 건가??

 

일단 찾아서 풀어보면 이렇게 나온다

 

 

 

 

 

 

 

 

그럼 결과를 입력해보면

 

http://www.pythonchallenge.com/pc/ring/bell.html

 

인증을 해야 되는데 repeat:switch 하면 된다

 

 

 

http://www.pythonchallenge.com/pc/hex/decent.html

 

 

 

 

 

 

 

 

 

이메일을 알아야 하는데 지금 문제가 있다 어디서 알지?

 

했는데 지금 보면 이게 아까 풀지 못한 암축 파일을 풀어야 겠다 싶어서 풀기에 도전 보았다

 

Level 19 인가 20 를 참고해야 한다

 

해당 ZIP 파일이 모류가 있는 것이 하나 있다

import md5

broken = open('mybroken.zip').read()
for i in range(len(broken)):
     for j in range(256):
         repaired = broken[:i] + chr(j) + broken[i+1:]
         if md5.md5(repaired).hexdigest() == 'bbb8b499a0eef99b52c7f13f4e78c24b':
             open('unbroken.zip','wb').write(repaired)
             print i, j
             raise StopIteration
# 이렇게 할수도 있고

 

오잉 반디집으로 바로 풀었는데 오류가 있다고 한다

 

그렇지만 압축이 풀리는데 내용물은 speed 나온다

 

그냥 speed 입력하면 안되는데 이는

 

힌트에서 boat 쓰는 것을 잊었다고 했다 그러면 그걸 고려하여 해결하면

 

이는 speedboat

 

된다

 

이걸 입력하면

 

http://www.pythonchallenge.com/pc/hex/speedboat.html 200 슈슝

 

 

 

 

 

http://www.pythonchallenge.com/pc/hex/lake.html

 

 

 

 

 

 

소스코드와 이미지가 보인다 lake1.jpg 가보면

 

 

 

 

 

위와 같은 이미지가 보인다

 

1 이라는건 2 있을 있다는 이야기가 된다 그럼 2 날려보자

 

없다 404 뜬다 근데 wave 라고 했다 그렇다면 웨이브 음악 파일을 말하는게 아닌가 생각이 든다 이는 위에서 보이는지 묻는다 제목에 사운드 어쩌고 있으니까 음악 파일이 맞는 같다

 

http://www.pythonchallenge.com/pc/hex/lake3.wav

 

와우 뜬다

 

넘버링이 있는거 보니 몇개가 있는지는 모르겠지만

일단 전부 들어보자

 

 

 

 

일단 전부 다운 받자 다행이 25개에서 끊긴겉 같다

 

While문은 쓰즈 않는 권장한다 무한개일 경우 보장될수 없으니 말이다

 

 

파일들을 맞춰보면 같다

 

퍼즐처럼 되어 있으니 맞추라는 같다

 

5*5 퍼즐로 맞춰보자

 

 

 

 

맞춰 보니 이렇게 결과를 얻었다 이것을 대입하면

 

http://www.pythonchallenge.com/pc/hex/decent.html

 

다음으로 고고

 

 

 

 

 

 

http://www.pythonchallenge.com/pc/hex/ambiguity.html

 

 

 

 

보자마자 답이 안나온다 그렇지만 뭔가 이미지를 파싱하면 답이 나올 같다

 

<html>	
	<head>
	<title>from top to bottom</title>
	<link rel="stylesheet" type="text/css" href="../style.css">
	</head>
	<body>
	<center>
	<br>
	<br>
	<img src="maze.png"> 
	</body>
	</html>

 

출처: <http://www.pythonchallenge.com/pc/hex/ambiguity.html>

 

 

 

소스 코드 중에서 from top to bottom 이라는 문구가 있는 것을 보니 밑에서부터 읽으면 같다

 

소스코드를 짜봐서 돌리고 보니 이미지 파일이 아니었다 만약 zip 파일은 어떨까 이러면서 바꾸어 해보았다

 

 

 

위와 같은 결과를 얻을 있었다 이제 푸렁보도록 하겠다

 

 

 

 

http://www.pythonchallenge.com/pc/hex/lake.html

 

다음 단계로의 키워드를 얻을 있었습닏나

 

다음으로 고고

 

 

 

+ Recent posts