0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

atcoder練習(2024.11.27)

Posted at

キーワード

問題

問題文

縦8マス、横8マスの64マスからなるマス目があります。
上からi行目(1≤i≤8)、左からj列目(1≤j≤8)のマスをマス(i,j)と呼ぶことにします。
それぞれのマスは、空マスであるかコマが置かれているかのどちらかです。
マスの状態は長さ8の文字列からなる長さ8の列(S1​,S2​,S3​,…,S8​)で表されます。
マス(i,j)(1≤i≤8,1≤j≤8)は、Si​のj文字目が.のとき空マスで、#のときコマが置かれています。
あなたは、すでに置かれているどのコマにも取られないように、いずれかの空マスに自分のコマを置きたいです。
マス(i,j)に置かれているコマは、次のどちらかの条件を満たすコマを取ることができます。
i行目のマスに置かれているj列目のマスに置かれているたとえば、マス(4,4)に置かれているコマは、以下の図で青く示されたマスに置かれているコマを取ることができます。
あなたがコマを置くことができるマスがいくつあるか求めてください。

制約

Si​ は ., # からなる長さ 8 の文字列 (1≤i≤8)

入力

入力は以下の形式で標準入力から与えられる。
S1​
S2​
S3​
S4​
S5​
S6​
S7​
S8​

出力

すでに置かれているコマに取られずに自分のコマを置くことができる空マスの個数を出力せよ。

入力例 1

...#....
#.......
.......#
....#...
.#......
........
........
..#.....

出力例 1

4

すでに置かれているコマは、以下の図で青く示されたマスに置かれたコマを取ることができます。
よって、あなたがすでに置かれているコマに取られないように自分のコマを置くことができるマスはマス (6,6), マス (6,7), マス (7,6), マス (7,7) の 4 マスです。

入力例 2

........
........
........
........
........
........
........
........

出力例 2

64

コマがひとつも置かれていないこともあります。

入力例 3

.#......
..#..#..
....#...
........
..#....#
........
...#....
....#...

出力例 3

4

回答

s = []
key = 0

for _ in range(8):
    line = input().translate(str.maketrans(".#", "01"))
    s.append([int(i) for i in line])

    if any(s[-1]):
        s[-1] = [num + 1 for num in s[-1]]
        key += 1

list = [sum(column) for column in zip(*s)]
list = [num - key for num in list]

for i in range(8):
  if sum(s[i]) == 0:
    s[i] = list

ans = sum(r.count(0) for r in s)
print(ans)

参考

備考

  • 多分もうすこし綺麗なアルゴリズムが書ける。
  • 頭の中の処理とアルゴリズムが一致していないような気がする。まぁでも動いたからいいや
  • コードを書いた上で、そのコードを添削する方法がいい感じな気がする。
  • 昨日でこのコードをかけたのだが、提出すると実行時エラーが全部で発生して正解しなかった。コードテストのサンプルでは正解できていたし、コードテストもものすごい時間がかかっていたことから、atcoder側のエラーな気がする。つまり僕は悪くない!
  • 他の人のコードを見る限り、forでiとjを動かして、どちらかに#があるとアウトみたいな探している人が多いような気がする。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?