목록코딩테스트/코테를 위한 알고리즘 & 자료구조 정리 (8)
seunghyun Note
단일 연결 리스트 이중 연결 리스트 스택 & 큐 (배열로 하는 방법은 숙지했음! linked list로 구현해 보기) 이진 검색 트리 트리 순회 (bfs,dfs) 이진 힙 해시 테이블 (사용해 봤지만 복습) 그래프, 그래프 순회 다익스트라 알고리즘 동적 프로그래밍 Binary Heaps 힙은 트리 구조의 일종이다. 이진 탐색트리와 비슷하지만 다른 규칙을 가지고 있다. 최대 이진 힙에서는 부모 노드가 항상 자식 노드보다 큰 값을 가진다. 힙은 왼쪽과 오른쪽 노드에 순서가 없다. (단지 부모 노드만 자식 노드보다 큰 값을 가진다.) 이진 힙의 원리 부모에서 자식으로 가기 위해서는 부모에 2를 곱하고 left일 경우 +1, right일 경우 +2로 이동을 한다. 반대로 자식에서 부모를 갈 때는 (자식-1)/2..
깊이 우선 (DFS) preorder, inorder, postorder 재귀함수 사용해서 문제 해결하기 //Node를 생성한다. class Node { constructor(value) { this.value = value; this.left = null; this.right = null; } } //BST class BinarySearchTree { constructor() { this.root = null; } insert(value) { var newNode = new Node(value); if (this.root === null) { this.root = newNode; return this; } var current = this.root; while (true) { if (value === ..
단일 연결 리스트 이중 연결 리스트 스택 & 큐 (배열로 하는 방법은 숙지했음! linked list로 구현해 보기) 이진 검색 트리 트리 순회 (bfs,dfs) 이진 힙 해시 테이블 (사용해 봤지만 복습) 그래프, 그래프 순회 다익스트라 알고리즘 동적 프로그래밍 트리 순회 소개 트리를 순회하는데는 두 가지 방식이 있다. 너비 우선 (BFS) 깊이 우선 (DFS) preorder, inorder, postorder BFS 너비우선탐색 - use Queue(Array & list) : FIFO(first in first out) 아래코드를 보면 1~7번까지 순서로 이동한다. class Node { constructor(value) { this.value = value; this.left = null; th..
단일 연결 리스트 이중 연결 리스트 스택 & 큐 (배열로 하는 방법은 숙지했음! linked list로 구현해 보기) 이진 검색 트리 트리 순회 이진 힙 해시 테이블 (사용해 봤지만 복습) 그래프, 그래프 순회 다익스트라 알고리즘 동적 프로그래밍 기본적인 연결리스트의 개념이 필요하다. 2024.01.23 - [코딩테스트/코테를 위한 알고리즘 & 자료구조 정리] - Singly Linked Lists with JS Singly Linked Lists with JS 코딩테스트를 공부하면서 프로그래머스 lv0~lv1 쉬운 버전들, 백준 실버 5 까지는 풀어도 linked list, stack & queue, tree 등 다양한 자료구조와 알고리즘 문제들이 나오면 과거에 배웠던 것을 망각하고 cojjangsh...
단일 연결 리스트 이중 연결 리스트 스택 & 큐 (배열로 하는 방법은 숙지했음! linked list로 구현해 보기) 이진 검색 트리 트리 순회 이진 힙 해시 테이블 (사용해 봤지만 복습) 그래프, 그래프 순회 다익스트라 알고리즘 동적 프로그래밍 2024.01.25 - [코딩테스트/코테를 위한 알고리즘 & 자료구조 정리] - Stack with JS Stack with JS 단일 연결 리스트 이중 연결 리스트 스택 & 큐 (배열로 하는 방법은 숙지했음! linked list로 구현해 보기) 이진 검색 트리 트리 순회 이진 힙 해시 테이블 (사용해 봤지만 복습) 그래프, 그래프 순회 cojjangsh.tistory.com 스택이 끝났다면.... 큐는 스택과 다르게 먼저 들어온 것이 먼저 나가는 "선입선출"..
단일 연결 리스트 이중 연결 리스트 스택 & 큐 (배열로 하는 방법은 숙지했음! linked list로 구현해 보기) 이진 검색 트리 트리 순회 이진 힙 해시 테이블 (사용해 봤지만 복습) 그래프, 그래프 순회 다익스트라 알고리즘 동적 프로그래밍 스택은 후입선출 원칙에 따라 데이터를 추가하고 제거하는 데이터 구조이다. 배열을 사용할 때 js 내에 stack.pop(), stack.push(value) ,stack.unshift(value) 등이 있지만 이것을 기계적으로 사용하다보면 문제를 바라볼 때 이해가 안될때가 많다. 그렇기 때문에 linked list를 통해 원리를 이해하는 것이 중요하다. Stack class setting Node 클래스는 연결리스트이기 때문에 똑같다. stack은 연결리스트에서..