분류 전체보기
-
[JavaScript] 프로토타입 체이닝 1 : constructor, prototype, __proto__카테고리 없음 2020. 2. 14. 16:50
* constructor, prototype 자바스크립트의 모든 객체는 자신의 부모 객체와 연결되어 있다. 이 때, 부모 역할을 하는 객체를 프로토타입 혹은 프로토타입 객체라고 부른다. 객체의 부모, 즉 객체의 프로토타입은 객체가 생성될 때 결정된다. 객체는 생성자함수에 의해 만들어진다. 어떤 함수가 생성되면 프로토타입 객체가 함께 생성된다. 생성된 함수의 prototype 프로퍼티는 함께 생성된 프로토타입 객체를 가리키며, 생성된 객체의 constructor 프로퍼티는 생성자 함수를 가리킨다. 이를 그림으로 보면 아래와 같다. 프로토타입 객체에는 기본적으로 constructor 프로퍼티가 들어있다. 프로토타입도 객체이므로, 아래외 같이 프로퍼티를 추가해서 사용하는 것이 가능하다. // Construct..
-
[Data Structure] 시간 복잡도, 공간 복잡도카테고리 없음 2020. 2. 11. 15:18
* 시간 복잡도 알고리즘의 수행시간을 분석한 결과를 말한다. 일반적으로 빅오 표기법(Big-O Notation)을 사용해 나타낸다. 1. Big-O 알고리즘의 성능을 수학적으로 표현해주는 표기법. 이를 통해 알고리즘의 시간 복잡도, 공간 복잡도를 표현할 수 있다. Big-O는 알고리즘의 실제 러닝타임을 표기하기보다는 알고리즘의 성능을 예측하는 데 사용된다. 2. 상수(Constants) 위에서 언급했듯, Big-O의 용도는 실제 알고리즘 러닝타임이 아니라, 성능 예측이기 때문에 빅오 표기시 상수는 중요하게 고려하지 않아 제거한다. 3. 표기 - O(1) : Constant Time 입력 데이터의 크기와 상관없이 언제나 일정 시간이 걸리는 경우다. 예를 들어, 연결 리스트의 맨 앞에 노드를 추가하는 작업의..
-
[Data Structure] Tree, Binary Search Tree, Graph카테고리 없음 2020. 2. 10. 14:08
1. 트리(Tree) 트리는 부모-자식의 계층구조를 가진 자료구조를 의미한다. 자식은 여럿일 수 있지만, 부모는 하나라는 특징이 있다. 트리 최상단에 위치한 부모 노드를 루트 노드(Root Node)라고 한다. 그리고, 자식이 없는 노드는 리프 노드(Leaf Node) 혹은 터미널 노드(Terminal Node)라고 한다. 그 외의 노드들은 내부 노드(Internal Node) 라고 한다. 아래 그림에서 루트 노드는 A, 리프 노드는 F, G, H 가 된다. 트리 관련해서 추가적으로 살펴볼 개념은 다음과 같다. - 엣지(Edge) : 노드와 노드를 이어주는 선을 의미한다. 한 노드와 다른 노드와의 관계를 설명한다. - 레벨(Level) : 루트 노드로부터의 거리를 의미한다. 그림의 경우, 레벨 1은:A,..