프론트 개발자를 위한 여정

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

BFS 5

[프로그래머스] DFS/BFS > 단어변환 /JS / 접근법, 문제풀이

문제 설명두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다.1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다.2. words에 있는 단어로만 변환할 수 있습니다.예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다.두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변환할 ..

[프로그래머스] DFS/BFS > 게임 맵 최단거리 /JS / 접근법, 문제풀이

문제https://school.programmers.co.kr/learn/courses/30/lessons/1844?language=javascript 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다.지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다.위 그림에서 검은색 부분..

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), 즉 너비 우선 탐색을..