배열을 생성 후에 특정한 값으로 채우고 싶다면 fill 메소드를 사용하는 것이 좋고, 각각의 인덱스마다 다른 값을 주고 싶다면 Array.from 메소드를 사용하여 각 인덱스의 값을 지정해줄 수 있다.lenght : 배열의 길이를 측정하는 속성배열의 길이를 특정한 값으
어떠한 데이터를 추가하고 삭제하는 로직이 계속적으로 반복되어질 때 배열을 이용하게 된다면 추가하거나 삭제할 때마다 O(n)의 시간복잡도를 가지게 되는데 이러한 비효율성을 줄이기 위해서 연결리스트(LinkedList)를 사용한다. 연결리스트는 각각의 요소를 포인터로 연결
LIFO(Last-In-First-Out)의 개념을 가진 자료구조로서 가장 마지막의 들어간 데이터가 가장 처음 나오게 되는 자료구조이다. 데이터 추가 및 삭제는 오직 한방향으로만 가능하다.FIFO(First-In-First-Out)의 개념을 가진 자료구조로서 가장 처음
키와 값을 받아 키를 해싱하여 나온 인덱스 값을 저장하는 선형 자료구조이다.삽입의 시간복잡도는 O(1)이며, 만약 키를 알고 있다면, 삭제와 탐색의 시간복잡도 역시 O(1)로 수행하게 된다.해시테이블에서 각 테이블의 인덱스를 bucket이라하며, 테이블의 각 요소는
정점과 정점 사이를 연결하는 간선으로 이루어진 비선형 자료구조이다.정점 집합과 간선 집합으로 표현할 수 있으며, 주로 인물관계도나 지하철 노선도, 페이지 랭크 등에 사용된다.정점은 여러 개의 간선을 가질 수 있다.크게 방향 그래프와 무방향 그래프로 나눌 수 있다.간선에
하나의 노드를 가리키는 간선이 하나밖에 없는 구조로 일종의 방향그래프이다.노드 : 각 정점간선 : 노드와 노드를 잇는 선리프노드(leaf node) : 자식이 없는 노드레벨(level) : 루트로부터 몇번째 깊이인지 표현하는 용어, 루트가 level 1루트노드를 제외한
일반적인 큐(Queue)는 FIFO의 특징을 갖지만 우선순위 큐는 우선순위가 높은 요소를 먼저 내보내는 특징이 있다. 이러한 우선순위 큐는 정해진 자료구조가 아닌 개념의 한 부분 이며, 우선순위 큐를 구현하기 위한 가장 적합한 방법이 힙 자료구조이다. 루트 노드에 가장
문자열을 저장하고 효율적으로 탐색하기 위한 트리형태의 비선형 자료구조검색어 자동완성, 사전 찾기 등에 응용된다.문자열 탐색 시, 단순하게 비교하는 것 보다는 효율적이다.문자열의 길이가 L일경우 탐색 및 삽입은 O(L)의 시간 복잡도를 가진다.각 노드의 자식에 대한 링크
정렬되어 있는 요소들을 반씩 제외하며 찾는 알고리즘이다.반드시 정렬이 되어있어야 사용이 가능하다.배열 혹은 이진 트리를 이용하여 구현가능하다.O(log N)의 시간 복잡도를 가진다.이진 탐색을 위한 이진트리로, 왼쪽 서브 트리는 루트노드의 값보다 작은 값들이 존재하며,
크게 비교식과 분산식 정렬로 나눌 수 있다.비교식 정렬의 종류로는 버블, 선택, 삽입 정렬이 있다.분산식 정렬의 종류로는 합병, 퀵 정렬이 있다.다른요소와 비교를 통해 정렬하는 방식서로 인접한 두 요소를 검사하여 정렬하는 알고리즘으로 O(n^2)의 시간복잡도를 가진다.
Queue를 통해서 구현할 수 있다.시작 지점에서 가장 가까운 노드부터 탐색한다.V가 정점의 수 E가 간선의 수를 의미할 때 시간복잡도는 O(E+V)이다.dequeue한 노드에서 갈 수 있는 정점을 enqueue하는 방식이다.stack을 이용하여 구현할 수 있다.시작
매선택에서 지금 이순간 가장 최적인 답을 선택하는 알고리즘이다.항상 최적해를 보장하지는 않는다.최적해를 구하는 알고리즘보다 빠른 경우가 많다.크루스칼, 다익스트라 알고리즘 등에 사용도니다.직관적인 문제 풀이에 적합하다.특정 구현방법이 따로 존재하지 않는다.
그래프에서 특정 정점에서 목적지까지 최단 경로를 구하는 알고리즘이다.이전에 배운 bfs, dfs도 최단경로 알고리즘으로 사용가능하다.bfs, 다익스트라, 벨만-포드, 프로이드 와샬 알고리즘 등이 존재한다.그래프의 간선에 가중치 값이 존재하지 않은 경우에는 BFS, DF