슬기로운슬기
[프로그래머스][Lv2] 전력망을 둘로 나누기
study/코딩테스트 2023. 12. 27. 17:53

문제 [완전탐색][BFS][Queue] https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 import java.util.LinkedList; import java.util.Queue; class Solution { static int[][] graph; // bfs() : BFS를 통해 송전탑의 개수의 차이(절대값) 계산 private int bfs(int n, int start) { int[] visited = new int[n+1]; /..

article thumbnail
[알고리즘] DFS(깊이우선탐색)와 BFS(너비우선탐색)
study/코딩테스트 2023. 12. 20. 20:21

그래프를 탐색하는 방법에는 크게 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)이 있다. 그래프란? 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조의 일종 그래프를 탐색한다는 것은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것 DFS(깊이 우선 탐색) 시작점에서 한 갈래로 더 이상 갈 수 없을 때까지 탐색하고, 더 갈 곳이 없다면 이전의 경로로 되돌아간다. 가장 직관적이고 구현하기 쉬운 탐색 방법 현재 정점과 연결된 정점들을 하나씩 갈 수 있는지 검사하고, 특정 정점으로 갈 수 있다면 그 정점에 가서 같은 행위를 반복 같은 정점을 다시 방문하지 않도록 정점에 방문했다는 것을 표시 스택이나 재귀함수를 통해 구현 DFS의 구현 - 재귀함수 // 각 노..

반응형