개발 공부 기록
[SWEA 1979번 / JAVA] 어디에 단어가 들어갈 수 있을까 본문
Question
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PuPq6AaQDFAUq
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
💡 Solution
1. 값이 1일 경우 size를 + 1 해줍니다.
2. 값이 0일 경우(즉, 벽을 만났을 경우) size가 K라면 count를 + 1 해줍니다. 이후 size를 다시 초기화합니다.
3. 한 행/열의 탐색을 모두 마친 후 size가 K라면 count를 + 1 해줍니다.
💻 Code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class SWEA1979 {
static int N, K;
static int[][] map;
static int[] dx = {1, -1};
static int[] dy = {1, -1};
static boolean[][] visited;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
for (int tc = 1; tc <= T; tc++) {
st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
K = Integer.parseInt(st.nextToken());
map = new int[N][N];
visited = new boolean[N][N];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < N; j++) {
// 흰 색 : 1, 검은색 : 0
map[i][j] = Integer.parseInt(st.nextToken());
}
}
//행 검사하기
int count = 0;
for (int i = 0; i < N; i++) {
int size = 0;
for (int j = 0; j < N; j++) {
if (map[i][j] == 1) {
size++;
} else {
if (size == K) {
count++;
}
size = 0;
}
}
if (size == K) {
count++;
}
}
//열 검사하기
for (int j = 0; j < N; j++) {
int size = 0;
for (int i = 0; i < N; i++) {
if (map[i][j] == 1) {
size++;
} else {
if (size == K) {
count++;
}
size = 0;
}
}
if (size == K) {
count++;
}
}
System.out.printf("#%d %d\n", tc, count);
}
}
}
'PS > Implement' 카테고리의 다른 글
[Programmers / JAVA] 기지국 설치 (1) | 2023.11.20 |
---|---|
[SWEA 1959번 / JAVA] 두 개의 숫자열 (1) | 2023.11.18 |
[SWEA 1961번 / JAVA] 숫자 배열 회전 (1) | 2023.11.18 |
[SWEA 1234번 / JAVA] 비밀번호 (0) | 2023.11.17 |
[SWEA 1230번 / JAVA] 암호문3 (1) | 2023.11.17 |