SW Expert Academy- 어디에 단어가 들어갈 수 있을까
문제 링크
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PuPq6AaQDFAUq
문제 입력
더보기
10
5 3
0 0 1 1 1
1 1 1 1 0
0 0 1 0 0
0 1 1 1 1
1 1 1 0 1
5 3
1 0 0 1 0
1 1 0 1 1
1 0 1 1 1
0 1 1 0 1
0 1 1 1 0
8 3
1 1 0 1 0 1 1 1
0 1 0 1 0 0 0 1
1 1 1 0 0 1 0 1
0 1 0 1 0 1 1 1
0 0 0 1 0 1 0 1
1 1 1 1 1 1 0 0
0 1 0 0 0 1 0 1
1 1 1 0 1 1 1 1
8 4
0 1 1 1 0 1 1 1
1 0 0 1 0 1 0 0
1 0 0 1 1 1 0 1
1 1 1 0 0 1 1 1
0 0 1 0 0 1 0 1
1 1 1 1 1 0 0 0
0 1 0 0 1 0 0 0
1 1 1 0 1 1 1 0
10 3
0 1 0 0 0 1 0 0 0 1
0 1 0 1 0 1 0 1 1 1
1 1 1 1 1 1 1 1 0 1
0 1 0 0 1 0 0 1 0 0
0 1 1 1 1 0 1 1 1 0
0 0 0 1 0 1 0 0 1 0
0 1 1 1 0 1 1 1 1 1
0 1 0 0 0 1 0 0 0 1
1 1 1 0 0 0 0 1 1 1
0 0 1 1 1 0 0 1 0 0
10 4
0 0 1 0 0 0 1 0 0 1
0 0 1 1 0 0 1 1 1 1
1 1 1 1 1 1 1 1 0 1
0 0 1 0 1 0 0 1 0 0
0 1 1 1 1 1 0 1 1 1
0 0 0 1 0 0 1 0 1 0
0 1 1 1 0 1 1 1 0 1
0 0 1 0 0 0 1 0 0 1
1 1 1 0 0 0 0 1 1 1
0 1 0 1 1 0 1 1 1 0
12 3
0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1
0 1 1 1 0 1 1 1 0 1 1 1
0 0 1 0 0 0 1 0 0 0 1 0
0 1 1 1 0 1 1 1 0 1 1 1
1 1 0 1 1 1 0 1 1 1 0 1
0 1 1 1 0 1 1 1 0 1 1 1
0 0 1 0 0 0 1 0 0 0 1 0
0 1 1 1 0 1 1 1 0 1 1 1
1 1 0 1 1 1 0 1 1 1 0 1
0 1 1 1 0 1 1 1 0 1 1 1
0 0 1 0 0 0 1 0 0 0 1 0
12 4
0 1 1 1 0 1 1 1 0 1 1 1
1 1 0 1 1 1 0 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 1 1
1 0 1 0 1 0 1 0 1 0 1 0
0 1 1 1 0 1 1 1 0 1 1 1
1 1 0 1 1 1 0 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 1 1
1 0 1 0 1 0 1 0 1 0 1 0
0 1 1 1 0 1 1 1 0 1 1 1
1 1 0 1 1 1 0 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 1 1
1 0 1 0 1 0 1 0 1 0 1 0
15 3
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
15 2
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
#1 2
#2 6
#3 6
#4 0
#5 14
#6 2
#7 45
#8 0
#9 98
#10 7
문제 풀이
package sw.expert.academy;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class SW1979어디에단어가들어갈수있을까 {
// 한 라인당 단어가 들어갈 수 있는 구간의 갯수를 리턴하는 함수
// vh: vertical or horizontal
static int check(int vh, int n, int k, int[][] arr) {
int tcnt = 0; // total cnt
for (int i = 0; i < n; i++) {
int cnt = 0; // 연속하는 0의 개수
for (int j = 0; j < n; j++) {
if (vh == 0) { // horizontal
if (arr[i][j] == 1) cnt++;
else {
if (cnt == k) tcnt++;
cnt = 0;
}
} else { // vertical
if (arr[j][i] == 1) cnt++;
else {
if (cnt == k) tcnt++;
cnt = 0;
}
}
}
if (cnt == k) tcnt++;
}
return tcnt;
}
// 메인 함수
public static void main(String[] args) throws FileNotFoundException {
System.setIn(new FileInputStream("src/sw/expert/academy/input.txt"));
Scanner sc = new Scanner(System.in);
// T 입력받기
int T = sc.nextInt();
// 테스트 케이스 돌기
for (int t = 0; t < T; t++) {
int n, k;
n = sc.nextInt();
k = sc.nextInt();
// 배열 입력 받기
int[][] mp = new int[n][n];
for (int i = 0; i < mp.length; i++) {
for (int j = 0; j < mp.length; j++)
mp[i][j] = sc.nextInt();
}
// ans: 맵에 단어가 들어갈 수 있는 구간의 개수
int ans = 0;
// check() call
ans += check(0, n, k, mp);
ans += check(1, n, k, mp);
System.out.printf("#%d %d\n", t + 1, ans);
}
sc.close();
}
}
- 연속해서 1이 나온다면 카운팅을 한다.
- 중간에 0이 나온다면 카운트를 다시 초기화한다.
- 근데 초기화를 하기 전에 cnt 가 k라면 total cnt를 세준다.
- 결론적으로는 total cnt를 return 한다.
# SWEA 어디에 단어가 들어갈 수 있을까 # SW Expert Academy
728x90
'✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > SW Expert Academy' 카테고리의 다른 글
[SW1961] 숫자 배열 회전 (0) | 2022.07.14 |
---|---|
[SW2001] 파리퇴치 (0) | 2022.07.12 |
[SW1959] 두 개의 숫자열 (0) | 2022.07.07 |
[SW10505] 소득 불균형 (0) | 2022.05.29 |
[SW10580] 전봇대 (0) | 2022.05.29 |