[JAVA][Baekjoon] 1167번 트리의 지름 🌟🌟
·
Baekjoon
https://www.acmicpc.net/problem/1167📌 접근 방식1️⃣ 임의의 노드에서 가장 먼 노드 찾기트리의 아무 노드에서 시작하여 BFS를 실행이때 얻어지는 가장 먼 노드는 트리의 지름에 해당하는 두 노드 중 하나이다2️⃣ 가장 먼 노드에서 다시 BFS 실행1단계에서 찾은 가장 먼 노드에서 다시 BFS를 실행이번 BFS에서 얻은 가장 먼 거리가 트리의 지름이다 [알고리즘] 너비 우선 탐색 : BFS(Breadth-First-Search)📌  너비 우선 탐색이란?그래프 탐색 기법그래프 완전 탐색 기법 중 하나그래프의 시작 노드에서 출발하여 시작 노드를 기준으로 가까운 노드를 먼저 방문하면서 탐색하는 알고리즘Queue(큐)nyeroni.tistory.com ✅ PASS CODEimpor..
[JAVA][Baekjoon] 2178번 미로 탐색 🌟🌟
·
Baekjoon
https://www.acmicpc.net/problem/2178 📌 접근 방식1️⃣ 문제 분석미로는 2D 배열로 표현되고, 1은 이동 가능한 칸, 0은 이동 불가한 칸으로 나눔출발점 (1, 1)에서 도착점 (N, M)까지 이동하며 최소 칸 수를 구해야 함BFS를 사용해 너비 우선 탐색으로 최단 거리를 구하면 된다!2️⃣ 핵심 아이디어BFS의 특징: 가까운 칸부터 탐색하기 때문에 최단 거리 계산에 적합함큐를 사용해 (x, y) 좌표를 관리하고, 방문 여부는 visited 배열로 체크!미로 배열 A 자체를 거리 계산 용도로 활용해, 도착지의 값을 바로 출력하도록 설계3️⃣ 이동 방향 설정상, 하, 좌, 우로 이동하므로, 이를 dx, dy 배열로 관리dx = {0, 1, 0, -1}, dy = {1, 0,..
[JAVA][Baekjoon] 1260번 DFS와 BFS 🌟
·
Baekjoon
https://www.acmicpc.net/problem/1260📌 접근 방식1️⃣ DFS(Depth First Search):깊이 우선 탐색➡️한 노드에서 가능한 멀리까지 탐색한 후, 다시 돌아와 다른 경로를 탐색하는 방법 스택 또는 재귀 호출을 활용해 구현 (이번엔 재귀 방식으로 구현!)2️⃣ BFS(Breadth First Search):너비 우선 탐색➡️ 한 노드의 인접 노드들을 모두 탐색한 후, 그다음 깊이를 탐색큐(Queue)를 사용해 구현 [알고리즘] 깊이 우선 탐색 : DFS(Depth-First-Search)📌  깊이 우선 탐색이란?그래프 탐색 기법그래프 완전 탐색 기법 중 하나그래프의 시작 노드에서 출발하여 하나의 분기를 정해 최대 깊이까지 탐색이후, 탐색하지 않은 다른 분기로 이동..
[JAVA][Baekjoon] 13023번 ABCDE 🌟🌟
·
Baekjoon
https://www.acmicpc.net/problem/13023📌 접근 방식N명의 사람들이 있는데, 이들 중 5명이 다음과 같은 조건으로 연결되어 있는지 확인하는 문제A는 B와 친구다.B는 C와 친구다.C는 D와 친구다.D는 E와 친구다.즉, 깊이가 5인 친구 관계를 찾으면 됨그래서 DFS(깊이 우선 탐색) 을 사용했습니다. 🔑 핵심 아이디어DFS로 탐색하면서 깊이가 5가 되는 순간이 있다면 조건을 만족한다고 볼 수 있음방문한 노드를 다시 방문하지 않도록 모든 노드에 대해 탐색을 진행  [알고리즘] 깊이 우선 탐색 : DFS(Depth-First-Search)📌  깊이 우선 탐색이란?그래프 탐색 기법그래프 완전 탐색 기법 중 하나그래프에서 시작 노드에서 출발하여 하나의 분기를 정해 최대 깊이까지..