일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 백준 17451번
- 머신러닝과 딥러닝
- SQL
- AWS
- 깃헙
- 그래프
- HUFS 모각코 캠프
- 백준 1987
- 백준 2512번
- Python
- 명품자바
- 그리디
- 백준 15787번
- 백준 1331번
- 모각코
- 백준 1253번
- 다이나믹 프로그래밍
- javascript
- 백준 3085번
- react
- 백준 18310번
- MySQL
- java_programming
- 알고리즘
- 자바
- 백준
- 다이나믹프로그래밍
- SWEA 15612번
- 백준 16918번
- ubuntu
Archives
- Today
- Total
차곡차곡
[BOJ/Java] 백준 14716번 - 현수막 본문
백준 #14716 현수막
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 Main {
static int m, n;
static int[][] map;
static boolean[][] visited;
static int[] dx = {0, 0, 1, -1, -1, -1, 1, 1};
static int[] dy = {1, -1, 0, 0, -1, 1, -1, 1};
public static void calc(int i, int j) {
Queue<int[]> q = new LinkedList<int[]>();
q.offer(new int[] {i, j});
while (!q.isEmpty()) {
int[] node = q.poll();
for (int k = 0; k < 8; k++) {
int nx = node[0] + dx[k];
int ny = node[1] + dy[k];
if (0 <= nx && nx < m && 0 <= ny && ny < n) { // 범위 벗어나는지 확인
if (!visited[nx][ny] && map[nx][ny] != 0) {
visited[nx][ny] = true;
q.offer(new int[] {nx, ny});
}
}
}
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
m = Integer.parseInt(st.nextToken()); // 행
n = Integer.parseInt(st.nextToken()); // 열
visited = new boolean[m][n];
map = new int[m][n];
for (int i = 0; i < m; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < n; j++) {
map[i][j] = Integer.parseInt(st.nextToken());
}
}
int cnt = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (!visited[i][j] && map[i][j] != 0) {
calc(i, j);
cnt++;
}
}
}
System.out.println(cnt);
}
}
연결 그래프 개수 세어주면 되는 문제
'CS > Algorithm' 카테고리의 다른 글
[BOJ/Java] 백준 5014번 - 스타트링크 (0) | 2023.08.10 |
---|---|
[BOJ/Java] 백준 2210번 - 숫자판 점프 (0) | 2023.08.10 |
[BOJ/Java] 백준 2563번 - 색종이 (0) | 2023.08.09 |
[SWEA/Java] SW Expert Academy 9229번 - 한빈이와 Spot Mart (0) | 2023.08.08 |
[SWEA/Java] SW Expert Academy 1952번 - 수영장 (0) | 2023.08.08 |
Comments