https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXmwOSJaSNIDFARX
부서진 타일을 2*2 타일로 대체할 것이므로, 각 행/열에 대해 연속한 '#'를 센 값이 짝수여야 한다.
T = int(input())
for tc in range(1, T+1):
N, M = map(int, input().split())
arr = [input() for _ in range(N)]
result = 'YES'
# 각 row에 대해 확인
for i in range(N):
cnt_r = 0
for j in range(M):
if arr[i][j] == '#':
cnt_r += 1
# 현재 행에서 연속한 #의 길이가 홀수이면 결과 = NO
else:
if cnt_r % 2:
result = 'NO'
break
if cnt_r % 2:
result = 'NO'
break
# 각 column에 대해 확인
for i in range(M):
cnt_c = 0
for j in range(N):
if arr[j][i] == '#':
cnt_c += 1
# 현재 열에서 연속한 #의 길이가 홀수이면 결과 = NO
else:
if cnt_c % 2:
result = 'NO'
break
if cnt_c % 2:
result = 'NO'
break
print('#{} {}'.format(tc, result))
계획한 대로 풀었음.