カメヲラボ

主にプログラミングとお勉強全般について書いてます

CodeIQ過去問集38:パインスイーパ

本稿はCodeIQで出題された 【実力判定:Bランク】パインスイーパ という問題を再編集したものです。 ※出題時と記述が一部異なる場合がありますがご了承ください。

パインスイーパ

【注意】

どう見てもマインスイーパです。本当にありがとうございました。

【問題】

正方形のマス目があります。

マス目のいくつかにはパイナップルが置かれています。 このとき、パイナップルが置かれているマス目以外のすべてのマス目について、周囲にあるパイナップルの数を数えてください。

f:id:Ozy:20180502174344j:plain

たとえばこのような配置の場合、空いているマス目ごとに周囲8マスのパイナップルの数を数えると、

f:id:Ozy:20180502174402j:plain

のようになります。

【入力】

標準入力から、次の値が与えらえます。 1行目には、正方形の一辺のサイズN(20以下の正の整数)、2行目以降のN行分は長さNの文字列で、空白を表す「.」かパイナップルを表す「P」のいずれかになっています。

【出力】

力文字列の「.」の部分をパイナップル数に置き換えた文字列を出力してください。

【入出力サンプル】

Input

4
.P.P
....
..P.
....

Output

1P2P
1232
01P1
0111

【解答方法】

pinesweeper.zipをダウンロードし、展開してください。中には以下のフォルダが含まれています。

  • input: テストデータです
  • output: 解答データです

テストデータを入力として、解答データと一致する出力になるようなプログラムを書いてください。

[【解答例】]