본문 바로가기

dfs34

[백준] 1012번 유기농 배추 JAVA (자바) 풀이 문제 1012번(dfs, bfs):  배추흰지렁이는 상하좌우 네 방향에 위치한 다른 배추로 이동 가능:  배추흰지렁이가 있는 배추들은 해충으로부터 보호받을 수 있다 :  예) 배추밭이 아래와 같이 구성되어 있으면 최소 5마리의 배추흰지렁이가 필요        0은 배추가 심어져 있지 않은 땅이고, 1은 배추가 심어져 있는 땅 110000000001000000000000100000000010000000110001110000100111  [입력] :  첫째 줄에는 테스트 케이스 개수 T :  둘째 줄에는 배추 밭 가로 M, 세로 N, 배추 심은 땅 개수 k :  셋째 줄부터 배추의 위치 X(0 ≤ X ≤ M-1), Y(0 ≤ Y ≤ N-1)    (두 배추의 위치가 같은 경우는 없다) [출력] :  필요한 .. 2023. 9. 11.
[백준] 2606번 바이러스 JAVA (자바) 풀이 문제 2606번 : 어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다 : 네트워크 상에서 1번과 서로 연결되어 있는 컴퓨터들도 감염 (2번, 5번) : 감염된 컴퓨터들과 연결된 또 다른 컴퓨터들도 감염 (3번, 6번) [입력] : 첫째 줄에는 컴퓨터의 수 (컴퓨터의 수 100 이하인 양의 정수) : 둘째 줄에는 연결된 컴퓨터 쌍의 수 : 셋째 줄부터 쌍을 이루는 컴퓨터 번호 나열 [출력] : 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수 출력 [DFS 코드] import java.util.*; import java.io.*; public class Main { static int arr[][]; static boolean visit[]; static int N, M; static int resul.. 2023. 9. 11.
[프로그래머스] Lv.2 무인도 여행JAVA 풀이 문제 Lv.2 무인도 여행 : 지도 = 1 x 1 크기의 사각형으로 이루어진 직사각형 격자 형태 격자 구성 = X, 숫자 (1 ~ 9) - X = 바다 - 숫자 = 무인도 (상, 하, 좌, 우 붙어있는 애들은 하나의 무인도, 대각선은 다른땅) : 하나의 무인도 숫자 합 = 해당 무인도에서 최대로 머무를 수 있는 기한 (오름차순으로 출력) 무인도가 없는 경우 = -1 출력 : maps = 지도 (문자열 배열) [지도 배열 예시] [알고 가기] - 깊이 우선 탐색 - 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 - 스택 or 재귀함수 이용 - 제일 깊게 내려간 뒤 더이상 갈 수 없을 때 옆으로 이동해서 다시 깊게 내려가기를 반복 - 구현 : DFS (간단) > BFS - 검색 속도 : .. 2023. 9. 4.
[프로그래머스] Lv.2 광물 캐기 JAVA 풀이 문제 Lv.2 광물 캐기(DFS) -   곡괭이로 광물을 캘 때 피로도 소모 -   캐기 시작하면 한 곡괭이로 광물 5개까지 연속 캐기  -   광물은 주어진 순서대로 캐기 -   광산에 있는 광물 모두 캐거나 사용할 곡괭이가 없을 때까지 캔다  [ 피로도 ]  [ 입력 ]  -   곡괭이 개수 : picks = [다이아, 철, 돌] (정수 배열) -   광물 순서: minerals (문자열 배열)  [알고 가기]   -  깊이 우선 탐색-  그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘-  스택 or 재귀함수 이용 -  제일 깊게 내려간 뒤 더이상 갈 수 없을 때 옆으로   이동해서 다시 깊게 내려가기를 반복-  구현 : DFS (간단) > BFS -  검색 속도 : BFS  > DFS (느림) .. 2023. 9. 4.