BOJ 1652. 横になる場所を見つけます(python)


BOJ問題1652どこかで横になる


質問リンク
問題の説明
一年で世界一周したヨンシクは旅行の途中で疲れていたので、近くのコレスコンドで一泊することにし、部屋を借りました.
コレスココンドの部屋はNxNの正方形をしています.部屋には運べない荷物が多く、永植のベッドを占めていました.英植はこの劣悪な環境の中でどこかで横になる.永植が横になれる場所には条件があります.2つ以上のスペースが連続して存在する場合は、そこで体を伸ばして横になることができます.横になってもいいし、横になってもいいです.横になると無条件に体を伸ばすので、必ず壁や荷物にぶつかります.△途中で気絶することはなかった.

部屋の構造が上図のようであれば、横になれる席が5席、横になれる席が4席あります.部屋の大きさNと部屋の構造が与えられた場合、横になれる席数と垂直に横になれる席数を求めるプログラムを作成してください.
I/O例


コード#コード#
# import sys
# sys.stdin = open('input.txt')

N = int(input())
arr = [list(input()) for _ in range(N)]
# 가로, 세로 누울 수 있는 자리 초기화
row, col = 0, 0
# 가로로 누울 수 있는 곳 검사
for i in range(N):
    cnt = 0
    for j in range(N):
        if arr[i][j] == '.' and j < N-1:
            cnt+=1
        elif arr[i][j] == '.' and j == N-1:
            cnt+=1
            if cnt>=2:
                row+=1
        # X가 나오면 여태 나온 .의 개수를 확인
        elif arr[i][j] == 'X':
            if cnt>=2:
                row+=1
            cnt = 0
# 세로로 누울 수 있는 자리 검사
for j in range(N):
    cnt = 0
    for i in range(N):
        if arr[i][j] == '.' and i < N-1:
            cnt+=1
        elif arr[i][j] == '.' and i == N-1:
            cnt+=1
            if cnt>=2:
                col+=1
        elif arr[i][j] == 'X':
            if cnt>=2:
                col+=1
            cnt = 0
print(row, col)