AtCoder ABC 062 B – Picture Frame Python解説

2021年11月21日

スポンサーリンク

Picture Frame

縦 H ピクセル、横 W ピクセルの画像があります。 各ピクセルは英小文字で表されます。 上から i 番目、左から j 番目のピクセルは aij です。

この画像の周囲1 ピクセルを #で囲んだものを出力してください。

AtCoder株式会社 AtCoder Beginner Contest 062

入力から与えられる文字列を#で囲んでいく問題です。
入力に対する出力は次のようになっています。

#入力例
2 3
abc
arc

#出力例
#####
#abc#
#arc#
#####

まず一番上の#を見ていきたいと思います。まず、文字列の横幅Wに対し、囲むのに必要な#はW+2個です。同様に一番下の#も一番上とすることは一緒なので、W+2個#が必要なことがわかります。

続いて文字列の左右の#は文字列の出力と同時に出します。

h, w = map(int, input().split())

a = "#" * (w + 2)

print(a)
for _ in range(h):
    print("#" + input() + "#")
print(a)

まず、一番上の#を出力します。続いてfor文を使い、受け取った入力と共に#を出力します。
最後に一番下の#を出力して完了です。