dfs(15)
-
[Baekjoon] 1987번: 알파벳 - Java
https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 문제 설명 DFS 문제를 살짝 응용한 문제이다. 풀이 방법 핵심이 되는 DFS 함수는 다음과 같다. private static void dfs(int r, int c, int count) { if (isDuplicated[board[r][c]]) { MAX = Math.max(MAX, count); return; } else { isDuplicated[board[r][c]] = true; ..
2023.02.14 -
[Baekjoon] 4963번: 섬의 개수 - Java
https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 문제 설명 기본적인 DFS 문제이다. 크게 설명할 것은 없으며 주의할 점은 대각선까지 하나의 섬으로 따지는 것이다. 풀이 방법 기본적인 DFS 방식으로 해결할 수 있다. package baekjoon.dfs_bfs; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import..
2023.02.14 -
[Baekjoon] 10026번: 적록색약 - Java
https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 문제 설명 기본적인 DFS 문제이다. RGB 픽셀로 이루어진 입력이 주어지고 일반 사람과 적록색약이 볼 수 있는 구역의 수를 구하면 된다. 풀이 방법 일반인과 적록색약이 보는 그림을 구분하기 위해 먼저 두 개의 배열을 준비하고 입력받았다. 적록색약의 그림은 G를 R로 대신 입력하면 된다(또는 그 반대). for (int x = 0; x < N; x++) { char[] pixels = br..
2023.02.13