단순한 사다리타기 문제이다.
도착점에 도착할 경우, 출발점을 리턴해야한다!
그리고, 가로선이 양쪽으로 존재하는 경우는 없다.
그러므로, 사다리를 타고 내려가다가(x+=1), 가로선이 있을경우 가로선을 따라 쭉 이동(y+=1)
그리고 이동할 가로선이 없을 경우 다시 내려가기!
res=[]
def go(st):
x,y=1,st
while x!=100:
if y>=2 and li[x][y-1]==1:
while y>=2 and li[x][y-1]==1:
y-=1
elif y<=99 and li[x][y+1]==1:
while y<=99 and li[x][y+1]==1:
y+=1
x+=1
if li[x][y]==2:
return st
else:
return 0
for m in range(10):
tmp=""
_=input()
li=[[0]*(101)]
for i in range(100):
li.append([0]+list(map(int,input().split())))
for i in range(1,101):
if li[1][i]==1:
tmp=go(i)
if tmp!=0:
break
res.append(tmp-1)
for i in range(len(res)):
print("#%d %s"%(i+1,res[i]))