[JAVA][Baekjoon] 1920번 수 찾기 🌟
·
Coding Test/Baekjoon
https://www.acmicpc.net/problem/1920📌 접근 방식1️⃣ 이진 탐색 사용배열 A를 정렬하여 이진 탐색의 전제 조건(정렬된 배열)을 충족.M개의 수를 각각 A에 대해 이진 탐색을 사용해 존재 여부를 확인.이진 탐색의 시간 복잡도는 O(logN), 이를 M번 수행하므로 총 시간 복잡도는 O(MlogN). [알고리즘] 이진 탐색(Binary Search)📌  이진 탐색이란?이진 탐색(Binary Search)은 정렬된 데이터에서 원하는 값을 효율적으로 탐색하는 알고리즘! 🎯기능특징시간 복잡도타깃 데이터 탐색중앙값 비교를 통한 대상 축소 방식O(logN) nyeroni.tistory.com  ✅ PASS CODEimport java.io.*;import java.util.Arra..
[JAVA][Baekjoon] 1167번 트리의 지름 🌟🌟
·
Coding Test/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번 미로 탐색 🌟🌟
·
Coding Test/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 🌟
·
Coding Test/Baekjoon
https://www.acmicpc.net/problem/1260📌 접근 방식1️⃣ DFS(Depth First Search):깊이 우선 탐색➡️한 노드에서 가능한 멀리까지 탐색한 후, 다시 돌아와 다른 경로를 탐색하는 방법 스택 또는 재귀 호출을 활용해 구현 (이번엔 재귀 방식으로 구현!)2️⃣ BFS(Breadth First Search):너비 우선 탐색➡️ 한 노드의 인접 노드들을 모두 탐색한 후, 그다음 깊이를 탐색큐(Queue)를 사용해 구현 [알고리즘] 깊이 우선 탐색 : DFS(Depth-First-Search)📌  깊이 우선 탐색이란?그래프 탐색 기법그래프 완전 탐색 기법 중 하나그래프의 시작 노드에서 출발하여 하나의 분기를 정해 최대 깊이까지 탐색이후, 탐색하지 않은 다른 분기로 이동..