알고리즘/DFS & BFS 5

프로그래머스 - 무인도 여행 (자바)

내가 보려고 쓰는 풀이. 문제 링크 [나의 풀이] 전형적인 DFS 문제라 생각했다. 근데 난 코딩테스트 찌랭이라(못해도 너무 못함), 내 풀이에 확신이 없었다. 다 풀고 남의 풀이들 보니, 역시나 DFS나 BFS로 푸는 게 일반적이었음. 전형적인 DFS인데도 불구하고 블로그에 기록하는 이유는, 글로 써야 내 머릿속에 한번 더 들어오기 때문. import java.util.*; class Solution { static char[][] map; static int row, col; static int[] dx = {-1, 1, 0, 0}; static int[] dy = {0, 0, -1, 1}; static boolean[][] check; static int sum = 0; public int[] so..

백준 2573 - 빙산 (자바)

DFS 내가 보려고 기록 문제 링크 코드 빙산 배열을 복사한 배열 생성 ice() : 주변 0 개수 카운트 dfs() : 빙산 덩어리 개수 카운트 while{} 빙산 덩어리가 0개면 break 빙산 덩어리가 2개 이상이 되면 break import java.util.*; import java.io.*; public class Main { static int[][] map; static int N, M; static int answer = 0; static int[] dx = {-1, 1, 0, 0}; static int[] dy = {0, 0, -1, 1}; static boolean[][] check; public static void main(String[] args) throws IOExceptio..

[BFS] 프로그래머스 - 가장 먼 노드 (자바)

시작점 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return. BFS로 푸는 문제. 내가 까먹을까봐 기록함. 문제 링크 풀이 출처 (설명 잘 돼있음. 문제는 내 이해력;;) 풀이 import java.util.*; class Solution { public int solution(int n, int[][] edge) { int answer = 0; ArrayList graph = new ArrayList(); int[] distance = new int[n + 1]; boolean[] visited = new boolean[n + 1]; for(int i = 0; i

[DFS] 백준 2468 - 안전 영역 (자바)

내가 까먹을까봐 기록함. 문제 : https://www.acmicpc.net/problem/2468 import java.util.*; import java.io.*; public class Main { static int N; static int[][] arr; static int max; static int maxHeight; static boolean[][] check; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; N = Integer.parseInt(br.readLine..

DFS & BFS

내가 보려고 씀 ⭐ DFS (Depth-First Search) 깊이 우선 탐색 💡 개념 넓게(wide) 탐색하기 전에 깊게(deep) 탐색 모든 노드를 방문하고자 하는 경우에 이 방법을 선택 BFS 보다 간단 BFS에 비해 검색 속도 느림 💡 특징 재귀함수를 이용함, 재귀함수의 코드가 훨씬 짧음 재귀함수란? 자기 자신을 호출하는 순환 알고리즘 어떤 노드를 방문했었는지 여부를 반드시 검사 (검사하지 않으면 무한루프) 모든 경우의 수를 탐색하고자 하는 미로 문제 같은 경우 적합 -> 미로 : 최단 경로X, 탈출 경로O 💡 구현 방법 방법 : https://codingnojam.tistory.com/44 스택 : 방문하는 순서대로 정점을 스택에 쌓고, 방문이 끝나면 스택에서 pop 재귀함수 : 재귀 함수를 ..