문제링크

 

풀이

T = int(input())
for test in range(1, T+1):
    n, k = map(int, input().split())
    arr = [list(map(int, input().split())) for _ in range(n)]
    # con : 1의 개수 확인, res : k가 들어갈 수 있는 자리 개수
    con = 0
    res = 0
    for i in range(n):
        # 행
        for j in range(n):
            if arr[i][j] == 1:
                con += 1
            if arr[i][j] == 0 or j == n-1:
                if con == k:
                    res += 1
                con = 0
        # 열
        for j in range(n):
            if arr[j][i] == 1:
                con += 1
            if arr[j][i] == 0 or j == n-1:
                if con == k:
                    res += 1
                con = 0
                
    print(f"#{test} {res}")

행과 열을 따로 검사한다.

한 줄씩 읽으면서 1을 만나면 카운트에 추가, 0을 만나거나 한 줄의 끝일 때 카운트와 단어의 길이가 같은지 검사한다.

같으면 결괏값을 증가시킨다. 다음 줄 검사를 위해 카운트를 0으로 초기화한다.