백준 11123 양 한마리... 양 두마리... JAVA

sundays·2022년 11월 27일
0

문제

양 한마리... 양 두마리...

풀이

오래간만에 BFS문제 입니다. #이 양을 대신하는데 #의 무리가 몇개인지를 맞추면 되는 문제인데요
for문으로 map전부를 돌면서 안 가본 양의 무리들을 세면 되는 문제입니다.

  1. 2중 for문으로 map을 전부 돌면서 #이 있을때 큐에 넣고 무리를 세면 됩니다
			for (int i = 0; i < h; i++) {
                for (int j = 0; j < w; j++) {
                    if (check[i][j] == 0 && arr[i][j] == '#') {
                        q.add(new Map(i, j));
                        answer++;
                        check[i][j] = 1;
                        
                    }
                }
            }
  1. 해당 #이랑 맞닿아 있을 경우 check하위에 q.isEmpty()로 전부 체크 해줍니다.
						while (!q.isEmpty()) {
                            Map m = q.poll();
                            for (int d = 0; d < 4; d++) {
                                int nr = m.x + dr[d];
                                int nc = m.y + dc[d];
                                if (nr < 0 || nr >= h || nc < 0 
                                	|| nc >= w || arr[nr][nc] == '.' 
                                	|| check[nr][nc] == 1)
                                    continue;
                                check[nr][nc] = 1;
                                q.offer(new Map(nr, nc));
                            }
                        }

전체 코드

전체 코드

profile
develop life

0개의 댓글