컴퓨터 사이언스(CS)는 개발자의 기초 체력이라고 생각합니다.roadmap.sh에서 제공하는 로드맵을 기반으로 내용을 정리하고 기록하여 CS 개념에 대한 이해와 개인 학습에 목적을 두고 있습니다.roadmap.sh의 Computer Science 로드맵을 참고하여 방향
서로 연관된 데이터들을 메모리에 연속적이게 저장하는 자료구조배열은 처음에 크기를 선언해야하기 때문에 고정된 저장 공간을 가진다.장점 : index를 알고 있으면 데이터를 조회하는데 O(1)의 시간만에 찾을 수 있다.단점 : 선언시에 고정된 크기를 정해야하고 중간 원소를
LIFO ( Last In First Out )으로 가장 마지막에 추가된 데이터가 가장 먼저 나오게 되는 자료구조push : 스택의 맨 위에 데이터를 추가pop : 스택의 맨 위 데이터를 제거peek : 스택의 맨 위 요소를 반환 ( 제거하지 않고 )isempty :
{key, value} 쌍으로 이루어진 값을 저장하며 탐색, 삭제, 저장을 O(1) 으로 수행하는데 목적을 가진 자료구조hash함수 를 사용해서 key 를 해쉬 값으로 만듦 = bucketbucket에 실제 데이터인 {key, value} 쌍을 저장데이터를 조회할 때
Tree 그래프의 일종으로 한 루트 노드에서 시작해서 자기 자신에게 돌아오지 못하는 순환이 없는 그래프이다. root node : 최상위 노드 leaf node : 자식 노드가 없는 노드 internal node : leaf node가 아닌 노드 ( 내부 노드 )
Heap Heap은 Complete Binary Tree이며 Heap 속성을 만족하는 것 Heap 속성 1.* Max heap property* : 부모 노드의 값이 자식 노드들의 값 보다 큰 속성 Min heap property : 부모 노드의 값이 자식 노드
각각의 노드는 최대 2개의 자식을 가질 수 있으며, 검색 하는데 O(log(n))의 시간이 소요 됨BST와 일반 binary tree 의 차이점모든 노드들의 왼쪽 서브트리 값은 루트 노드보다 작다.모든 노드들의 오른쪽 서브트리 값은 루트 노드보다 크다.서브 트리들도 각