Python/Python Challenge
[Python Challenge 14] 빙글빙글
리덕토
2021. 5. 21. 03:23
Python Challenge 14의 Url은 다음과 같다
Python challenge 14 : http://www.pythonchallenge.com/pc/return/italy.html
구성
페이지에는 사진이 2개 있다. 위에 보이는 나선빵은 italy라는 이름을 가지고 있고, 아래 바코드 같은 사진은 wire.png라는 이름을 가지고 있다. 별다른 상호작용을 보이지 않으니 주석을 보자
가운데 주석으로 100*100 = (100+99+99+98) 이라는 글이 쓰여있다.
해결 아이디어
가운데 식으로 부터 다음을 생각할 수 있다.
즉 빙글빙글 돌면서 그림을 채우는 것이다. 채울 대상은 wire.png이다. 다운로드하여보면 10000*1의 크기로 된 사진이다.
### 14.py
from PIL import Image
if __name__ == "__main__" :
with Image.open("wire.png") as img :
tar = Image.new('RGB',(101,101))
length = img.width
dx = [1,0,-1,0]
dy = [0,1,0,-1]
direction = 0
x = 100
y = 99
cur_x = 0
cur_y = 0
index = 0
while(x+y>0) :
if(direction%2==0) :
for i in range(x) :
tar.putpixel((cur_x,cur_y),img.getpixel((index,0)))
cur_x += dx[direction]
index += 1
x -= 1
else :
for i in range(y) :
tar.putpixel((cur_x,cur_y),img.getpixel((index,0)))
cur_y += dy[direction]
index += 1
y -= 1
direction = (direction + 1)%4
tar.save("new_wire.png")
출력된 사진 new_wire.png는 다음과 같다.
허어... 커여어.... 찾았다.
Answer Url : http://www.pythonchallenge.com/pc/return/cat.html