Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

코드와이

[BAKEJOON] 2589. 보물섬 본문

acmicpc

[BAKEJOON] 2589. 보물섬

코드와이 2021. 6. 24. 12:37

 

문제링크

https://www.acmicpc.net/problem/2589

 

2589번: 보물섬

보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서

www.acmicpc.net

 

package acmicpc.Gold5;

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 보물섬 {

	static int n, m, ans;
	static char[][] map;
	static int[] dr = {-1,1,0,0};
	static int[] dc = {0,0,-1,1};
	static class Point {
		int r,c,cnt;

		public Point(int r, int c, int cnt) {
			super();
			this.r = r;
			this.c = c;
			this.cnt = cnt;
		}
	}
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		n = Integer.parseInt(st.nextToken());
		m = Integer.parseInt(st.nextToken());
		map = new char[n][m];
		
		for(int i = 0 ; i < n ; i++) {
			map[i] = br.readLine().toCharArray();
		}
		ans = 0;
		for(int i = 0 ; i < n ; i++) {
			for(int j = 0 ; j < m ; j++) {
				if(map[i][j] == 'L') {
					road(i,j);
				}
			}
		}
		System.out.println(ans);
		
	}
	
	public static void road(int sR, int sC) {
		boolean[][] visited = new boolean[n][m];
		visited[sR][sC] = true;
		Queue<Point> pq = new LinkedList<>();
		pq.add(new Point(sR,sC,0));
		
		while(!pq.isEmpty()) {
			
			Point q = pq.poll();
			
			ans = Math.max(ans, q.cnt);
			
			for(int d = 0 ; d < 4 ; d++) {
				int nr = q.r + dr[d];
				int nc = q.c + dc[d];
				
				if(nr < 0 || nc < 0 || nr >= n || nc >= m || map[nr][nc] == 'W' || visited[nr][nc]) continue;
				visited[nr][nc] = true;
				pq.add(new Point(nr, nc, q.cnt + 1));
			}
		}
	}
}

'acmicpc' 카테고리의 다른 글

[BAEKJOON] 2493. 탑  (0) 2021.06.25
[BAEKJOON] 1915. 가장 큰 정사각형  (0) 2021.06.25
[BAEKJOON] 17144. 미세먼지 안녕!  (0) 2021.06.22
[BAEKJOON] 5014. 스타트링크  (0) 2021.06.20
[BAEKJOON] 1644. 소수의 연속합  (0) 2021.06.17