Algorithm 2

알고리즘 - 투 포인터 (js 예제 구현)

1. 투 포인터(Two pointer) 알고리즘 이란 ? 배열이나 문자열 같이 선형으로 이루어진 구조에서 각자 다른 값을 가리키는 2 개 혹은 그 이상의 포인터를 두고 값 들을 비교하여 문제를 해결하는 알고리즘 입니다. 2. 예제 문제로 이해하기 input = [-2, -1, 1, 0, 1, 2] answer = [-2, 2] 위와 같이 숫자로 이루어진 배열이 주어졌을 때, 배열의 요소 중 2개의 합이 0 이 되는 경우 중 , 가장 빠른 경우에서의 두 수를 구하여라! (배열은 오름차순으로 정렬되어 있다.) 위 예제문제를 풀어보며 이해해 봅시다. 2-1. 이중 for문 사용하기 / O(n^2) function solution() { for (let i = 0; i < input.length; i++) { ..

Algorithm 2022.09.21

알고리즘 - DFS, BFS (JS 구현)

DFS와 BFS 모두 그래프를 탐색하는 방법중 하나입니다. 1. DFS(Depth-First-Search) 란? 루트 노드에서 시작해서 한 분기를 모두 방문하고 다음 분기로 넘어가는 방식입니다. 인접 노드를 깊이 우선으로 탐색하기 때문에 깊이 우선 탐색, DFS 라고 불립니다. DFS의 예로 미로 찾기를 들 수 있습니다. (최대한 한 방향으로 이동하고, 막다른 길에서는 이전 갈림길로 되돌아와 다시 한 방향으로 이동하기를 반복함) 위 예제 그래프를 DFS로 탐색하면 방문한 노드 순서는 1-2-4-5-3-6-7 입니다. 2. BFS(Breadth-First-Search) 란? 루트 노드에서 시작해서 인접한 노드들을 먼저 모두 탐색 하는 방식입니다. 인접 노드를 너비를 우선으로 탐색하기 때문에 너비 우선 탐색..

Algorithm 2022.08.03