1. ์ฝ๋
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.Comparator;
class Solution
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int i = 1; i <= T; i++) {
// 1. ํผ์ฆ ๊ตฌ์กฐ 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ฐ๊ธฐ.
int N = sc.nextInt();
int K = sc.nextInt();
int [][] puzzle = new int[N][N];
ArrayList<Integer> container = new ArrayList<>();
for (int j = 0; j < N; j++) {
for (int k = 0; k < N; k++) {
puzzle[j][k] = sc.nextInt();
}
}
// 2. ๋ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
// 2-1. ํ๋ง๋ค ์ฐ์๋ 1์ ๊ฐ์ ArrayList์ ์ง์ด๋ฃ๋๋ค.
// ๊ฐ๋ก๋ง ๋ดค์ ๋ ํผ์ฆ์ ๋ฃ์ ์ ์๋ ๊ณต๊ฐ ์ฒดํฌํ๊ธฐ
for (int j = 0; j < N; j++) {
int temp = 0;
for (int k = 0; k < N; k++) {
if(puzzle[j][k] == 1){
temp +=1;
}else if(puzzle[j][k] == 0) {
if(temp == 0) {continue;}
container.add(temp);
temp = 0;
}
if(k == N-1) {
if(temp== 0){continue;}
container.add(temp);
}
}
}
// ์ธ๋ก๋ง ๋ดค์ ๋ ํผ์ฆ ๋ค์ด๊ฐ ์ ์๋ ๊ณต๊ฐ ์ฒดํฌ
for (int j = 0; j < N; j++) {
int temp = 0;
for (int k = 0; k < N; k++) {
if(puzzle[k][j] == 1){
temp +=1;
}else if(puzzle[k][j] == 0) {
if(temp == 0) continue;
container.add(temp);
temp = 0;
}
if(k == N-1) {
if(temp== 0){continue;}
container.add(temp);
}
}
}
// 2-2. ArrayList ์ filter ์ ์ฉ ๊ฐ์ด k์ธ ๋
์๋ค๋ง ๋ฝ์ stream list ๋ง๋ค๊ณ ๊ทธ ์ฌ์ด์ฆ๋ฅผ ๊ตฌํ๋ค.
System.out.println("#"+i+" "+container.stream().filter(x -> x == K).count());
container.clear();
}
}
}
ํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ๋ด ์ฝ๋ ์๋ฅผ ๋น๊ตํด๋ณด๋, ๋ด ์ฝ๋ ์๊ฐ ๋์ ํธ์ ์ํด์ ๊ทธ ์ด์ ๋ฅผ ์๊ณ ์ ํฌ์ธํธ๋ฅผ ๋ด๊ณ ๋ค๋ฅธ ์ฌ๋ ์ฝ๋๋ฅผ ๋ดค๋ค.
2. ๋ค๋ฅธ ์ฌ๋ ์ฝ๋
import java.util.Scanner;
public class Solution {
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T;
T=sc.nextInt();
/*
์ฌ๋ฌ ๊ฐ์ ํ
์คํธ ์ผ์ด์ค๊ฐ ์ฃผ์ด์ง๋ฏ๋ก, ๊ฐ๊ฐ์ ์ฒ๋ฆฌํฉ๋๋ค.
*/
for(int test_case = 1; test_case <= T; test_case++)
{
int N = sc.nextInt();
int k = sc.nextInt();
int[][] arr = new int[N][N];
int cnt=0; // ๊ธธ์ด๊ฐ K์ธ ๋จ์ด๊ฐ ๋ค์ด๊ฐ ์ ์๋ ๊ณต๊ฐ ์นด์ดํ
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++) {
arr[i][j] = sc.nextInt();
}
}
int cntK=0; // ์ฐ์๋ 1์ ๋ด์ ๊ทธ๋ฆ, 0์ ๋ง์ฃผํ๋ฉด ๊ทธ๋ฆ์ ๋ค ๋น์ฐ๊ณ ๋ค์ ๋ฐ๋๋ค.
//๊ฐ๋ก ๊ฒ์ฆ
for(int i=0; i<N; i++) {
cntK=0;
for(int j=0; j<N; j++) {
if(arr[i][j]==1) {
cntK++;
}else {
if(cntK==k) cnt++; //๊ทธ๋ฆ์ ๋ด๊ธด 1์ด K๊ฐ ๋ณด๋ค ์์ ๊ฒฝ์ฐ, ๋ง์ ๊ฒฝ์ฐ ๋ค ๋น์ด๋ค.
cntK=0;
}
}
if(cntK==k) cnt++;
}
//์ธ๋ก๊ฒ์ฆ
for(int i=0; i<N; i++) {
cntK=0;
for(int j=0; j<N; j++) {
if(arr[j][i]==1) {
cntK++;
}else {
if(cntK==k) cnt++;
cntK=0;
}
}
if(cntK==k) cnt++;
}
System.out.printf("#%d %d\n", test_case, cnt);
}
}
}
๋๋ ์ฐ์๋ 1์ ๋ชจ๋ ๋ค ArrayList์ ๋ด์์ ๊ทธ ์ค K๊ฐ ์ธ ๊ฒ๋ง ๊ณจ๋ผ๋๋๋ฐ, ์ด ์ฝ๋๋ ์ ํํ K๊ฐ ์ธ ๊ฒ ์ ์ธํ๊ณ ์ ๋ถ๋ค ๋ฒ๋ฆฌ๊ณ ์์ํ๋ค. ๊ทธ๋์ ๋๋ ์ฝ๋ ์ ์ฐจ์ด๊ฐ ๋ฌ๋๋ณด๋ค.
0