프론트 개발자를 위한 여정

모든 영역을 안내하는 개발자

dfs 6

[프로그래머스] DFS/BFS > 여행경로 /JS / 접근법, 문제풀이

문제 설명주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다.항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요.제한사항모든 공항은 알파벳 대문자 3글자로 이루어집니다.주어진 공항 수는 3개 이상 10,000개 이하입니다.tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다.주어진 항공권은 모두 사용해야 합니다.만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 합니다.모든 도시를 방문할 수 없는 경우는 주어지지 않습니다.입출력 예예제 #1["ICN", "JFK", "HND", "IAD"]..

[DFS 문제] 그래프 탐색 / 연결 요소의 개수 찾기

그래프 탐색 (예상 소요 시간: 15~20분) 🔹 문제: 연결 요소의 개수 찾기  N개의 노드와 M개의 간선이 있는 무방향 그래프에서 연결 요소(연결된 노드 집합)의 개수를 구하시오. 입력 예시:console.log(solution(6, [ [0, 1], [0, 2], [3, 4]])); // 출력: 3  풀이6개의 노드가 있고, 간선으로 연결된 노드는 아래와 같다:0-1-2 (하나의 연결 요소)3-4 (두 번째 연결 요소)5는 독립적으로 존재 (세 번째 연결 요소)방문하지 않은 노드부터 DFS나 BFS를 시작하고, 그 노드와 연결된 모든 노드를 탐색한다.각 연결 요소를 찾을 때마다 연결 요소 개수를 증가시킨다.function solution(n, edges) { let coun..

[DFS 문제] 경로 탐색(미로 탐색, 최단 경로)

난이도 2 - 경로 탐색 (예상 소요 시간: 10~15분) 🔹 문제: 미로 탐색N x M크기의 미로가 주어진다. (1,1)에서 시작해 (N,M)으로 가는 최단 경로를 DFS로 탐색하여 출력하시오.벽(0)과 길(1)로 이루어져 있으며, 상하좌우로 이동 가능하다. 입력 예시:4 4 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 출력 예시:최단 거리: 7 // 0,0 -> 4,4  console.log(solution(5, 5, [ [1, 1, 0, 0, 0], [0, 1, 1, 1, 0], [0, 0, 0, 1, 0], [1, 1, 1, 1, 1], [0, 0, 0, 0, 1]])); // 예상 결과: 9console.log(solution(4, 4, [ ..

DFS & BFS 탐색 문제 개념 정리(개념, 코드, 시간/공간복잡도 비교)

🔎 1️⃣ DFS & BFS 문제에서 묻는 것그래프 탐색 문제에서 DFS(깊이 우선 탐색)와 BFS(너비 우선 탐색)를 구현할 수 있는지를 확인합니다.✅ 주요 개념DFS(Depth-First Search, 깊이 우선 탐색)그래프에서 한 경로를 깊게 탐색하다가 막히면 다시 되돌아가며 탐색하는 방식재귀(Recursive) 또는 스택(Stack)으로 구현BFS(Breadth-First Search, 너비 우선 탐색)시작점에서 가까운 노드부터 탐색하는 방식큐(Queue)를 활용하여 구현✅ 이 문제에서 확인하려는 핵심 내용그래프 탐색 알고리즘을 이해하고 있는가?DFS와 BFS를 직접 구현할 수 있는가?스택(Stack), 큐(Queue) 자료구조를 활용할 수 있는가?시간복잡도와 공간복잡도를 고려하여 효율적으로 탐..

Algorithm 2025.03.16

[algorithm 공부] DFS/BFS 쉬운 개념 js 구현 방법

탐색 알고리즘인 DFS(깊이 우선 탐색)와 BFS(너비 우선 탐색)에 대해 알아보겠습니다.이 두 알고리즘은 그래프나 트리 구조를 탐색하는 데 매우 유용한 방법입니다.특히, JavaScript를 기준으로 쉽게 구현하는 방법을 살펴보겠습니다.1. DFS와 BFS의 개념 이해DFS는 깊이 우선 탐색으로, 가능한 깊게 노드를 탐색한 후에 더 이상 탐색할 노드가 없으면 이전 노드로 돌아가서 다른 경로를 탐색하는 방식입니다. 반면, BFS는 너비 우선 탐색으로, 시작 노드에서 가까운 노드를 먼저 탐색하고, 그 다음으로 멀리 있는 노드를 탐색하는 방식입니다. 이 두 알고리즘은 각각의 특성에 따라 다양한 상황에서 유용하게 사용됩니다.이미지 출처DFS와 BFS의 탐색 경로를 보여주는 다이어그램입니다.2. DFS와 BFS..

Algorithm 2025.01.06

[프로그래머스] 연습문제 / 미로탈출 / Lv2 / JS / 접근법, 문제풀이 공유

문제 이해하기주어진 문제는 다음과 같습니다:미로는 O(빈칸), X(벽), S(시작점), L(레버), E(출구)로 구성됩니다.S에서 L로, L에서 E로 이동해야 합니다.O만 지나갈 수 있으며, X는 벽이라 지나갈 수 없습니다.최단 거리로 이동하는 방법을 찾는 게 목표입니다.예제 입력["SOOOL", "XXXXO", "OOOOO", "OXXXX", "OOOOE"]​  위 미로에서 우리는 S(0, 0) → L(0, 4) → E(4, 4)로 이동하는 경로를 찾아야 합니다.알고리즘을 어떻게 접근할까?이 문제를 해결하기 위해 두 가지 개념을 사용합니다:1. 미로 탐색2. 최단 거리 찾기최단 거리 탐색에 적합한 BFS최단 거리를 찾기 위해 BFS (Breadth-First Search), 즉 너비 우선 탐색을..