큐는 '선입선출',FIFO(First In First Out)의 개념을 가진 선행 자료구조이다. 스택은 입구와 출구가 동일하여 나중에 들어온 순서대로 나가는 구조지만, 큐는 입구와 출구가 달라 먼저 들어온 데이터가 먼저 나가는 구조이다.놀이공원에서 놀이기구를 타기 위해
연결리스트는 각 요소를 포인터로 연결하여 관리하는 선형 자료구조입니다. 각 요소는 노드라고 부르며 데이터 영역과 포인터 영역으로 구성됩니다.Node란?연결리스트에서 사용되는 하나의 데이터 덩어리이며, 데이터 & 링크 2가지 필드를 담고 있는 구조이다.data : 노드가
정점과 정점 사이를 연결하는 간선으로 이루어진 비선형 자료구조정점 집합과 간선 집합으로 표현할 수 있다.정점은 여러 개의 간선을 가질 수 있다.크게 방향 그래프와 무방향 그래프로 나눌 수 있다.간선은 가중치를 가질 수 있다.사이클이 발생할 수 있다.정점(vertex &
트리는 방향 그래프의 일종으로 정점을 가리키는 간선이 하나 밖에 없는 구조를 가지고 있다.Root : 트리 구조의 시작점이 되는 노드(가장 상위 부모)Node : 트리 구조를 이루는 모든 개별 데이터Edge : 노드를 연결하는 선 (간선)Leaf Node : 트리 구조
이진 트리 형태를 가지며 우선순위가 높은 요소가 먼저 나가기 위해 요소가 삽입, 삭제 될 때 바로 정렬되는 특징이 있다.우선순위가 높은 요소가 먼저 나가는 특징을 가진다.(우선순위가 높은 요소를 루트에 배치하고 루트가 가장 먼저 나간다.)루트가 가장 큰 값이 되는 최대
Greedy Algorithm은 말 그대로 탐욕 알고리즘으로 부르며, 매 선택에서 지금 이 순간 가장 최적인 답을 선택하는 알고리즘이다.매 선택마다 그 순간에 대해서는 최적이지만, 그 선택들이 모였을 때 최적해를 보장해주지 않는다.보통 최적해를 구하는 알고리즘보다 빠른
모든 경우의 수를 탐색하는 알고리즘DFS,BFS를 이용할 수 있다.효율을 위해 탐색하지 않아도 되는곳을 미리 막는 것을 가지치기(Pruning)라고 한다.자바스크립트는 재귀 효율이 안좋기 때문에 DFS를 구현할 경우 스택을 이용하는 것이 좋다.탐색에서 순환(Cycle)
해결한 작은 문제로 큰 문제를 해결하는 문제 풀이 방식그리디나 백트래킹처럼 특정 알고리즘이 아닌 문제 해결 방식을 의미한다.Dynamic Programming(DP)라고도 부른다.메모리를 많이 사용하는 대신 빠른 성능을 자랑한다.두 가지 방법론이 있다.메모이제이션(Me