개발자 공부하기/알고리즘 3

[C++][백준 2178] 미로탐색 - BFS를 이용한 최단거리

[백준 2178] 미로탐색 문제를 읽고 어떤 알고리즘을 써야하는지 힌트를 얻어보자. 내가 구해야하는 것은, (1, 1)에서 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수 => BFS!! 참고) BFS : 너비 우선 탐색 (Breadth-Frist Search) 1. What? : 루트 노드에서 시작해서 인접한 노드를 먼저 탐색하는 방법 2. When use? : 두 노드 사이의 최단 경로 or 임의의 경로를 찾을 때 사용한다. 3. How? : 큐(Queue), 노드 방문 여부(isVisited[idx]) 이용 ✏️ 그래프 탐색 DFS, BFS 기본 구현을 복습은 아래 링크에서 [C++] DFS와 BFS 구현하기 TIP. 어떤 자료구조를 사용하여 데이터를 관리할지 먼저 생각하자. 1. Que..

[C++] DFS와 BFS 구현하기

1️⃣DFS : 깊이 우선 탐색 (Depth-First Search) 1. What? : 루트 노트에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법 2. When use? : 모든 노드를 방문하고자 하는 경우 사용한다. 3. How? : 스택(Stack) or 재귀함수, 노드 방문 여부(isVisited[idx]) 이용 2️⃣BFS : 너비 우선 탐색 (Breadth-Frist Search) 1. What? : 루트 노드에서 시작해서 인접한 노드를 먼저 탐색하는 방법 2. When use? : 두 노드 사이의 최단 경로 or 임의의 경로를 찾을 때 사용한다. 3. How? : 큐(Queue), 노드 방문 여부(isVisited[idx]) 이용 ✔︎프림(Prim)과 다이스트라(D..

[자료구조] Swift로 Hash Table 이해하기

테이블 자료구조의 이해자료구조의 '테이블'은 사전구조, 맵(Map) 이라고 불린다. 키(Key)와 값(Value)가 하나의 쌍을 이루고 있다.사번 : Key직원 : Value100박보검101송중기102남주혁103이준기위 테이블에서 사번이 Key가 되고, 직원 이름이 Value가 된다.위와 같은 데이터를 어떻게 메모리상에서 효율적으로 CRUD할 것인가? => Hash Table!! 해시 함수 (Hash Function) 키(key)를 해쉬(Hash)로 바꿔 메모리를 효율적으로 관리하도록 한다. 사번 (key)에 대해 hash 함수를 key%4 로 정의하면 길이 4인 배열에 저장할 수 있다.ex) key 100인 경우, hash 값은 0 (=100%4) 이 되므로 empList[0] = 박보검 하지만 서로 ..