https://www.acmicpc.net/problem/1743
1743번: 음식물 피하기
첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다
www.acmicpc.net
Java 코드
import java.util.Scanner;
public class Main {
static int max = -1;
static int count;
static int n;
static int m;
static int[] dx = {1, -1, 0, 0};
static int[] dy = { 0, 0, -1, 1};
static boolean[][] visit;
static int[][] arr;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
int k = sc.nextInt();
arr = new int[n][m];
visit = new boolean[n][m];
for(int i = 0; i < k; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
arr[a - 1][b - 1] = 1;
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
if(arr[i][j] != 0 && visit[i][j] == false) {
count = 0;
dfs(i, j);
max = Math.max(max, count);
}
}
}
System.out.println(max);
}
public static void dfs(int a, int b) {
count++;
visit[a][b] = true;
for(int i = 0; i < 4; i++) {
int x = a + dx[i];
int y = b + dy[i];
if(x >= 0 && x < n && y >= 0 && y < m && arr[x][y] != 0 && visit[x][y] == false) dfs(x, y);
}
}
}
'백준' 카테고리의 다른 글
백준 4659 비밀번호 발음하기(Java) (0) | 2023.02.20 |
---|---|
백준 1495 기타리스트(Java) (0) | 2023.02.20 |
백준 16194 카드 구매하기(Java) (0) | 2023.02.20 |
백준 15688 수 정렬하기 5(Java) (0) | 2023.02.20 |
백준 1850 최대공약수(Java) (0) | 2023.02.20 |