pandasでpaiza問題(陣取りゲーム:陣取りの結末)

スポンサーリンク

paizaへのリンク(陣取りゲーム:陣取りの結末 (paizaランク B 相当)

前の問題と同じような考え方でwhileループを使う。ループ終了判断はflagで管理している。

import pandas as pd

h, w = map(int, input().split())
lst1 = []

for i in range(h):
    lst1.append(list(input()))

df1 = pd.DataFrame(lst1)
flag = 0

while True:
    # breakpoint()
    flag = 0
    for i in range(h):
        for j in range(w):
            if df1.iat[i, j] == '*':
                if i > 0:
                    if df1.iat[i - 1, j] == '.':
                        df1.iat[i - 1, j] = '*'
                        flag = 1
                if i < h - 1:
                    if df1.iat[i + 1, j] == '.':
                        df1.iat[i + 1, j] = '*'
                        flag = 1
                if j > 0:
                    if df1.iat[i, j - 1] == '.':
                        df1.iat[i, j - 1] = '*'
                        flag = 1
                if j < w - 1:
                    if df1.iat[i, j + 1] == '.':
                        df1.iat[i, j + 1] = '*'
                        flag = 1
    if flag == 0:
        break

for i in range(h):
    for j in range(w):
        print(df1.iat[i, j], end='')
    print()

「pandasでpaiza問題」記事一覧へのリンク

コメント

当ブログのコンテンツが気に入ったら広告ブロックの解除(ホワイトリスト化)をご検討下さい。

Please disable your adblocker or whitelist this site!

タイトルとURLをコピーしました