본문 바로가기

Skill Stacks/Javascript27

Udemy - Node.js [JavaScript Basics] Udemy - Node.js [JavaScript Basics] Node.js - The Complete Guide (Udemy) Node.js 란? 자바스크립트의 실행시간이다 자바스크트는 브라우저에서 실행되는 언어로, DOM을 조작하거나 브라우저에 로드된 페이지를 조작하는 프로그래밍 언어다 DOM = Document Object Model 자바스크립트를 서버에서 실행할 수 있도록 해준다 JavaScript on the Server 브라우저에 직접적으로 나타나지 않는, 데이터베이스를 연결하거나, 사용자 인증, 입력 유효성 검사까지 서버에서 한다 JavaScript Basics Boolean, 숫자, 텍스트 같이 데이터를 명확하게 정의하도록 강요하지 않는다 숫자를 텍스트로 바꾸는 것과 같이, 데이터 typ.. 2023. 4. 6.
Udemy - Javascript - Graph Traversal Udemy - Javascript - Graph Traversal Udemy JavaScript 그래프 순회 그래프에 있는 모든 노드들을 방문할 필요까지는 없다 그래프 순회를 할 때에는 visiting / updating / checking 이 중요하다 깊이 우선 그래프 (Depth First) vertex의 이웃 중 방문하지 않은 하나의 이웃으로 가는 것이다 이것을 모든 Vertex를 방문할때까지 순회를 한다 더 작은 이웃을 기준으로 깊이 우선 순회하기 넓이 순회 (Breadth First) 이웃된 노드가 2개면, 그 2개를 모두 순회하며 그래프를 순회한다 기본 그래프 만드는 코드 Graph 클래스에 DFS와 BFS를 넣을 것 class Graph { constructor(){ this.adjacenc.. 2023. 2. 27.
Udemy - Javascript - Graph Udemy - Javascript - Graph Udemy JavaScript 그래프 그래프는 유한하고 변할 수 있는 꼭지점이나 노드나 점들의 집합으로 구성된 데이터 구조다 그래프는 노드나 노드들의 연결을 모은 것이다 이진 트리와 다르게, 노드들끼리 연결만 되어 있으면 된다 그래프의 쓰임새 소셜 네트워크 좌표 / 지도 라우팅 알고리즘 (Routing Algorithms) 시각적 위계 (Visual Hierarchy) 등등 그래프의 유형 vertex : 노드 edge : 노드와 노드의 연결하는 선 Directed / Undirected Graph Undirected Graph : 특정한 경로가 없이, 두 노드 사이에서 왔다갔다 할 수 있다 / 방향이 없음 Directed Graph : edge마다 방향이 .. 2023. 2. 24.
Udemy - Javascript - Hash Table Udemy - Javascript - Hash Table Udemy JavaScript 해시 테이블 해시 테이블은, key와 value의 집합들이다 해시 테이블의 key들은 정렬이 안 되어 있다 파이썬에서는 Dictionary로 불린다 배열과 달리, 해시 테이블은, 요소를 찾을때, 삭제할 때, 새로운 요소를 추가할 때에 매우 빠르다 속도 때문에 해시 테이블을 많이 사용한다 해시 함수 key를 index같이 활용하고, value를 buckets 안에 넣는 것이다 key를 넣을때마다, key는 buckets의 특정 인덱스에 넣어지게 된다 2023. 2. 23.
Udemy - Javascript - Binary Heaps Udemy - Javascript - Binary Heaps Udemy JavaScript 이진 힙 MaxBinaryHeap : 부모 노드가 항상 자식 노드보다 크다 MinBinaryHeap : 부모 노드가 항상 자식 노드보다 작다 이진 힙은 항상 오른쪽과 왼쪽의 자식 노드를 채운다 MaxBinaryHeap 에서는 루트 노드가 제일 커야 한다 각 노드는 최대 2개의 자식을 가지고 있다 같은 층에 있는, 자식들은 부모 노드보다 작거나 큰거지, 서로의 관계는 상관이 없 인덱스 0의 자식은 1, 2 인덱스 1의 자식은 3과 4 인덱스 2의 자식은 5와 6 인덱스 3의 자식은 7, 8 즉 인덱스 n의 자식 노드를 구할 때에는 왼쪽 노드는 2n + 1 오른쪽 노드는 2n + 2 반대로 부모 노드를 구할 때에는 (.. 2023. 2. 22.
Udemy - Javascript - Tree Traversal Udemy - Javascript - Tree Traversal Udemy JavaScript 트리 순회 너비 우선 탐색 (Breadth First Search, BFS) Queue를 사용한다 [10, 7, 15, 5, 8, 20] 위의 리스트의 순서대로 탐색을 한다 class Node { constructor(value){ this.value = value; this.left = null; this.right = null; } } class BinarySearchTree { constructor() { this.root = null; } insert(value) { var newNode = new Node(value) if (this.root === null) { this.root = newNode; .. 2023. 2. 21.
Udemy - Javascript - Binary Tree Search Udemy - Javascript - Binary Tree Search Udemy JavaScript Tree 트리는 간선과 노드로 이루어져 있고, 노드들 간에 부모와 자식 노드라는 관계가 있다 1은 루트 노드이다 2와 3은 1의 자식 노드고, 1은 2와 3의 부모 노드다 트리가 아닌 것 이진 트리 / 이진 검색 트리 이진 트리 (Binary Tree) 이진 트리는 부모 노드가, 최대 2개의 자식 노드를 가지는 것이다 3개 이상의 자식 노드를 가지고 있으면 이진 트리가 아니다 이진 검색 트리 (Binary Search Tree) 이진 검색 트리는 정렬이 되어 있다 부모 노드보다 숫자가 적으면 왼쪽에 배치가 되어 있고, 크면 오른쪽에 배치가 되어 있다 루트 노드를 보면, 왼쪽에 있는 자식 노드는, 루트 노.. 2023. 2. 20.
Udemy - Javascript - Stack, Queue Udemy - Javascript - Stack, Queue Stack & Queue 데이터 구조의 모음이다 좀 더 압축적인 데이터 구조이다 데이터를 추가 또는 빼낸다 Stack (스택) LIFO (Last In First Out) 제일 마지막으로 스택에 추가된 것이, 제일 먼저 나간다 예를 들어, 재귀에서, 콜스택 (Call Stack)처럼, 제일 마지막에 추가된 요소를 먼저 빼낸다 배열로 스택 구현하기 // 스택 만들기 var stack = [] stack.push('google') stack.push('instagram') stack.push('youtube') stack.pop() // youtube stack.pop() // instagram stack.pop() // google 스택은 sta.. 2023. 2. 16.
Udemy - Javascript - Data Structure Udemy - Javascript - Data Structure Doubly Linked Lists (이중 연결 리스트) 자료구조 자료 구조는 데이터에 적용될 수 있는 값들 및 기능 혹은 작업들 사이의 관계를 포함한다 예를 들어 배열을 생각한다 배열 안에는 값들 사이에 관계가 있다 (정렬을 하거나, 값을 추가할 수 있거나 없앨 수 있다) 자료 구조에는 많은 종류가 있고, 각자 쓰임세가 다르다 이중 연결 리스트 이중 연결 리스트는, 다음 노드를 가리키는 간선이 2개이다 즉 앞에 노드와 뒤의 노드를 가리킨다 단점은 매모리를 단일 연결 리스트보다 더 많이 잡아 먹는다 class Node{ constructor(val){ this.val = val; this.next = null; this.prev = null.. 2023. 2. 14.