2024/10/16 4

Graph | 너비 우선 탐색(Breadth-First Search)

1. BFS와 DFS란?대표적인 그래프 탐색 알고리즘  * 너비 우선 탐색(Breadth First Search) : 정점들과 같은 레벨에 있는 노드들(형제 노드들)을 먼저 탐색하는 방식 * 깊이 우선 탐색(Depth First Search) : 정점의 자식들을 먼저 탐색하는 방식  2. Java로 그래프를 표현하는 방법Java Collection Framework에서 제공하는 Hashmap과 ArrayList를 활용해서 그래프를 표현할 수 있음 그래프 예와 Java 표현 HashMap> graph = new HashMap>();graph.put("A", new ArrayList(Arrays.asList("B", "C")));// 등등3. BFS 알고리즘 구현자료구조 큐를 활용한 * needVisit 큐..

Coding Test 2024.10.16

Graph| 그래프 이해와 자료 구조

1. 그래프(Graph)란?그래프는 실제 세계의 현상이나 사물을 정점(Vertex) 또는 노드(Node)와 간선(Edge)로 표현하기 위해 사용 2. 그래프(Graph) 관련 용어* 노드(Node) : 위치를 말함. 정점(Vertex)라고도 함 * 간선(Edge) : 위치 간의 관계를 표시한 선으로, 노드를 연결한 선이라고 보면 됨(link 또는 branch 라고도 함)* 인접 정점(Adjacent Vertex) : 간선으로 직접 연결된 정점(또는 노드)* 참고 용어    * 정점의 차수(Degree) : 무방향 그래프에서 하나의 정점에 인접한 정점의 수     * 진입 차수(In-Degree) : 방향 그래프에서 외부에서 오는 간선의 수     * 진출 차수(Out-Degree) : 방향 그래프에서 외..

Coding Test 2024.10.16

탐색 알고리즘 | 이진 탐색(Binary Search)

1. 이진 탐색(Binary Search)이란?탐색할 자료를 둘로 나누어 해당 데이터가 있을만한 곳을 탐색하는 방법 * 데이터가 정렬되어 있어야함  2. 분할 정복 알고리즘과 이진 탐색 분할 정복 알고리즘(Divide and Conquer)Divide : 문제를 하나 또는 둘 이상으로 나눈다. Conquer : 나눠진 문제가 충분히 작고, 해결이 가능하다면 해결하고, 그렇지 않다면 다시 나눈다. 이진 탐색 Divide : 리스트를 두 개의 서브 리스트로 나눈다. Comquer : 검색할 숫자(search) > 중간값이면, 뒷부분 / import java.util.ArrayList;public class BinarySearch { public boolean searchFunc(ArrayList dataLi..

Coding Test 2024.10.16

탐색 알고리즘 | 순차 탐색(Sequential Search)

1 . 순차 탐색(Sequential Search)이란?탐색은 여러 데이터 중에서 원하는 데이터를 찾아내는 것을 의미 데이터가 담겨있는 리스트를 앞에서부터 하나씩 비교해 원하는 데이터를 찾는 방법 ArrayList testData = new ArrayList();for(int i = 0; i 순차탐색 알고리즘import java.util.ArrayList;public class SequencialSearch { public int searchFunc(ArrayList dataList, Integer searchItem) { for(int index = 0; index

Coding Test 2024.10.16