dfs 2

[백준] 2573번: 빙산 - JAVA

문제   풀이 한 개의 빙산이 두 개 이상의 빙산으로 쪼개지는 데 걸리는 시간을 구하는 문제이다.빙산의 개수를 구하는 Method, 빙산을 녹이는 Method로 나누어서 풀이했다. 행의 개수 N, 열의 개수 M을 입력받는다. N x M의 크기를 가지는 2차원 Integer 배열을 선언하고 입력값을 저장한다. 얼음이 다 녹을 때까지 반복하며 빙산 덩어리의 수를 확인한다. 빙산 덩어리가 1개 초과라면 반복된 날짜를 출력한다.빙산 덩어리가 1개라면 얼음을 녹인다.영역을 순회하며 얼음을 찾는다.인접된 영역이 물인 수만큼 얼음을 녹인다. 이 때, 먼저 확인한 얼음이 녹아 물이 된 경우에는 녹이지 않는다. 아래 그림에서 3인 얼음의 인접인 물이 3이기 때문에 물이되지만 4인 얼음은 인접 물 3개의 영향만 받는다. ..

백준 2025.02.05

[백준] 1012번: 유기농 배추 - JAVA

문제     풀이전체 배추밭을 2차 배열 구조로 만듭니다.배추의 위치를 입력받아 해당 위치를 1로 변경합니다.배추밭의 0, 0부터 마지막까지 반복하며 배추가 있고, 방문하지 않은 경우 인접한 배추를 모두 찾아 방문으로 변경하고변경이 완료되면 지렁이의 수를 1 증가시킵니다.인접한 배추는 DFS(깊이 우선 탐색) 알고리즘을 사용하여 찾습니다.배추의 위치에서 상하좌우를 확인하여 배추가 있는 경우 방문으로 변경하고,그 배추의 위치에서 다시 탐색하여 인접한 배추를 모두 찾습니다. 정답 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { static int count; stat..

백준 2025.02.05