Data Structure&Algorithm

데이터 구조란?데이터를 메모리에 저장할 때, 데이터의 순서나 위치 관계를 규정한 것 (자료구조, Data structure)즉, 데이터를 효율적으로 사용할 수 있도록 정리하는 방법이다. → 결국 효율적인 데이터 구조로 메모리 사용 효율을 높인다.종류선형 구조 (Array, Dynamic Array, Linked List, Oueue, Stack, Hash Table)비선형 구조 (Tree, Graph)배열(Array)배열은 데이터를 한 열로 연속해서 정렬하는 데이터 구조이다.장점 : 원하는 데이터에 접근할 때 편리하다. → 인덱스가 존재하기 때문단점 : 데이터를 추가하거나 삭제하려면 시간이 오래 걸린다.배열 관련 코드 설명const a = [Blue, Yellow, Red];// 데이터 접근 방법 → 인..
01 다이나믹 프로그래밍**Dynamic Programming**이란?큰 문제를 작은 문제들로 나누어 해결한 후, 그 결과를 저장하여 중복 계산을 줄이는 최적화 기법(알고리즘)이다.분할정복(Divied and Conquer)도 큰 문제를 작은 문제로 나눠서 푸는 알고리즘이다.다이나믹 프로그래밍과 분할 정복의 차이는 큰 문제를 작은 문제로 나눴을 때, 중복이 가능한지 불가능한지이다.DP는 작은 문제의 중복이 된다.분할정복은 작은 문제의 중복이 안된다.10을 나눌 때 분할 정복이라면 5/5, 6/4, 7/3, 3/7과 같이 중복이 되지 않게 나눈다.10을 나눌 때 다이나믹 프로그래밍이라면 5,5,3,과 같이 중복이 되게 나눈다.다이나믹 프로그래밍이란 이름 자체엔 아무런 의미가 없다. 02 다이나믹 프로그래밍..
예시는 모두 Javascript를 이용하여 구현하였다. 트리 & 그래프우선 그래프 탐색을 하기 위해서는 그래프에 대해 알아야한다. 트리와 그래프는 가장 대표적인 그래프형 자료구조이다. Tree는 서로 연결된 Node의 계층형 자료구조로써, root와 부모-자식 관계의 subtree로 구성되어있다.두 개의 노드 사이에 1개의 경로만을 가지며 사이클이 존재하지 않은 방향 그래프이다. 따라서 '최소 연결 트리'라고 부르기도 한다.트리 순회에는 전위순회, 중위순회, 후휘순회 3가지가 존재한다.그래프(G)는 정점(vertex)들의 집합 V와 이들을 연결한 간선(edge)들의 집합 E로 구성된 자료구조이다. 이를 통해 연결된 노드 간의 관계를 표현할 수 있는 자료구조이다. \트리그래프정의단일 루트 노드로 연결된 노..
01 완전 탐색✔️ 완전 탐색은 간단히 가능한 모든 경우의 수를 다 체크해서 정답을 찾는 방법이다. 어떻게 보면 무식한 방법이라 할 수 있다.이 방법은 무식하게 한다는 의미로 “Brute Force (순전한 힘)”라고도 불리며, 직관적이여서 이해하기 쉽고 문제의 정확한 결과를 얻어 낼 수 있는 가장 확실하며 기초적인 방법이다.예를 들어 4자리 비밀번호를 알아내고 싶다면 생년월일, 기념일 등으로 유추해보는 것이 아닌 0000부터 9999까지의 모든 경우의 수를 전부 대입해보는 것이다.완전 탐색 구현 방법for/while loop재귀함수보통 간단한 문제는 for/while문을, 어려운 문제는 재귀함수를 사용한다고 생각하면 된다. 02 재귀✔️ 재귀는 하나의 함수에서 자기 자신을 호출해 작업을 수행하는 알고리..
ssooyeon
'Data Structure&Algorithm' 카테고리의 글 목록