package oSWExpertAcademy;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class D2_1979 {
public static void main(String[]args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
StringTokenizer st = new StringTokenizer(br.readLine());
//총 횟수
int attempt = Integer.parseInt(st.nextToken());
for(int i=1; i<=attempt; i++) {
String[] input = br.readLine().split(" ");
//퍼즐 사이즈
int size = Integer.parseInt(input[0]);
//들어가는 단어의 길이
int length = Integer.parseInt(input[1]);
//퍼즐 배열 만들기
int[][] arr = new int[size][size];
//2중 for문 돌려서 퍼즐 배열에 값 넣기
for(int j=0; j<size; j++) {
st = new StringTokenizer(br.readLine());
for(int k=0; k<size; k++) {
arr[j][k] = Integer.parseInt(st.nextToken());
}
}
//들어갈 수 있는 단어의 수
int count = 0;
//Horizontal >> y 축 확인
for(int j=0; j<size; j++) {
outerloop:
for(int k=0; k<=size-length; k++) {
if(k!=0 && arr[j][k-1]==1) {
continue;
}
if(k+length!=size && arr[j][k+length] ==1) {
continue;
}
for(int l=0; l<length; l++) {
if(arr[j][k+l] == 0) {
continue outerloop;
}
}
count++;
}
}
//Vertical >> x 축 확인
for(int j=0; j<size; j++) {
outerloop:
for(int k=0; k<=size-length; k++) {
if(k!=0 && arr[k-1][j]==1) {
continue;
}
if(k+length!=size && arr[k+length][j] ==1) {
continue;
}
for(int l=0; l<length; l++) {
if(arr[l+k][j] == 0) {
continue outerloop;
}
}
count++;
}
}
System.out.println("#"+i+" "+count);
}
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
'Java > SW Expert Academy' 카테고리의 다른 글
1974. 스도쿠 검증 (0) | 2021.01.09 |
---|---|
1976. 시각 덧셈 (0) | 2021.01.07 |
1545. 거꾸로 출력해 보아요 (0) | 2021.01.07 |
2019. 더블더블 (0) | 2021.01.07 |
1936. 1대1 가위바위보 (0) | 2021.01.07 |
댓글