# Problem 4-2 ###### tags: `week7` `answer` 1. 答案版 ```python=1 def work(i,j,lol,alist): global m clol =[] for m1 in range(m): ac = lol[m1][:] clol.append(ac) stock = clol[i][j] clist = alist[:] clist.append(stock) clol[i][j]= '#' count = 0 maxcompare = [] if check(i-1,j): if lol[i-1][j] != '#': count+=1 maxcompare.append(work(i-1,j,clol,clist)) if check(i+1,j): if lol[i+1][j] != '#': count+=1 maxcompare.append(work(i+1,j,clol,clist)) if check(i,j-1): if lol[i][j-1] != '#': count+=1 maxcompare.append(work(i,j-1,clol,clist)) if check(i,j+1): if lol[i][j+1] != '#': count+=1 maxcompare.append(work(i,j+1,clol,clist)) if count ==0: num = int(''.join(clist)) return num else: return max(maxcompare) def check(i,j): global m,n if 0<=i and i<m: if 0<=j and j<n: return True return False mlist =[] [m,n] = list(map(int,input().split(' '))) slol = [] for i in range(m): slol.append(list(input())) O_O = input() for i in range(m): for j in range(n): if slol[i][j] != '#': alist = [] mlist.append(work(i,j,slol,alist)) print(max(mlist)) ``` 2.print版 ```python=1 def work(i,j,lol,alist): global m,n clol =[] for m1 in range(m): ac = lol[m1][:] clol.append(ac) for g in clol: print(g) stock = clol[i][j] print(stock,alist) clist = alist[:] clist.append(stock) clol[i][j]= '#' count = 0 maxcompare = [] if check(i-1,j): if lol[i-1][j] != '#': count+=1 print('up') maxcompare.append(work(i-1,j,clol,clist)) if check(i+1,j): if lol[i+1][j] != '#': count+=1 print('down') maxcompare.append(work(i+1,j,clol,clist)) if check(i,j-1): if lol[i][j-1] != '#': count+=1 print('left') maxcompare.append(work(i,j-1,clol,clist)) if check(i,j+1): if lol[i][j+1] != '#': count+=1 print('right') maxcompare.append(work(i,j+1,clol,clist)) if count ==0: print(clist) num = int(''.join(clist)) return num else: print('maxcompare',maxcompare) return max(maxcompare) def check(i,j): global m,n if 0<=i and i<m: if 0<=j and j<n: return True return False mlist =[] [m,n] = list(map(int,input().split(' '))) slol = [] for i in range(m): slol.append(list(input())) print(slol) for i in range(m): for j in range(n): if slol[i][j] != '#': alist = [] mlist.append(work(i,j,slol,alist)) print(max(mlist)) ```