前提・実現したいこと
paizaのレベルアップ問題集を解いています。
https://paiza.jp/works/mondai/a_rank_level_up_problems/problem_index?language_uid=python3
この中の「陣取りゲーム」が答えはでるのですが、7マス×7マスになると、時間切れになるようです。
numpyも調べてみたのですがうまく導入できませんでした。
陣地を調べるところで時間を取られているようですが、具体的にどうすれば良いかアイデアがありません。
ご教授願います。
該当のソースコード
Python
1import numpy as np 2 3def camp(y, x): 4 if table[y-1][x] == '.': 5 table[y-1][x] = '*' 6 camp(y-1, x) 7 if table[y+1][x] == '.': 8 table[y+1][x] = '*' 9 camp(y+1, x) 10 if table[y][x-1] == '.': 11 table[y][x-1] = '*' 12 camp(y, x-1) 13 if table[y][x+1] == '.': 14 table[y][x+1] = '*' 15 camp(y, x+1) 16 return 17 18H, W = list(map(int, input().split(' '))) 19table = np.full([H + 2, W + 2], '#') 20 21for y in range(H): 22 l = input() 23 for x in range(W): 24 table[y+1][x+1] = l[x] 25 26target = np.where(table == '*') 27camp(target[0][0], target[1][0]) 28 29for y in range(1, H+1): 30 for x in range(1, W+1): 31 print(table[y][x],end='') 32 print() 33
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。