본문 바로가기
  • soldonii's devlog

datastructures+algorithms7

자바스크립트의 자료구조 5 : 트리(Trees) *Udemy의 "Master the Coding Interview : Data Structures + Algorithms" 강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 트리(Trees)란? 트리는 우리가 아는 나무를 거꾸로 뒤집어 놓은 형태를 생각하면 쉽다. 가장 위는 뿌리인 Root, 그리고 아래로 가지를 치면서 뻗어 내려온다. 2. 바이너리 트리(Binary Trees) 바이너리 트리는 각 노드가 하나 혹은 2개의 자식 노드만을 가지고 있는 상태의 트리구조이다. 하나의 노드는 아래와 같은 코드가 된다. function BinaryTreeNode(value) { this.va.. 2019. 10. 8.
자바스크립트의 자료구조 4 : 스택(Stack), 큐(Queue) *Udemy의 "Master the Coding Interview : Data Structures + Algorithms" 강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 스택(Stacks)과 큐(Queues)란? 스택과 큐 모두 Linear한 자료구조형이다. 이 둘은 아주 유사한 자료구조이지만, element가 제거되는 방식에 차이가 있다. - 스택 : 스택은 흔히 아는 자바스크립트 엔진에서의 콜 스택이 제거되는 방식과 동일하다. 마지막으로 삽입된 element가 가장 먼저 제거되는 방식을 취한다. LIFO(Last In, First Out)인 것이다. 따라서 스택은 브라우저 히.. 2019. 10. 8.
자바스크립트의 자료구조 3 : 연결 리스트(Linked List) *Udemy의 "Master the Coding Interview : Data Structures + Algorithms" 강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 연결 리스트(Linked List)란? Linked List는 1) value와 2) pointer가 한 쌍인 노드가 모여있는 자료구조형을 의미한다. 위 사진에서 푸른색 부분은 data를 저장하고 있고, 초록색 부분은 다음 노드를 가리키는 pointer 역할을 하는 address 부분이다. Linked List에서 가장 앞 쪽 시작부분(위 사진에서는 10을 가지고 있는 노드)을 Head, 가장 마지막 부분(40을.. 2019. 10. 8.
자바스크립트의 자료구조 2 : 해쉬 테이블(Hash Table) *Udemy의 "Master the Coding Interview : Data Structures + Algorithms" 강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 해쉬 테이블(Hash Table)? 앞선 글에서 배열에 대해서 살펴보았다면 이번에는 객체에 대해서 살펴보자. 객체는 Hash Table이라는 자료구조의 종류 중 하나이다. Hash Table은 Key와 Value가 쌍을 이룬 형태로 데이터가 저장되어 있는 자료구조형을 지칭한다. 사실 배열 내 데이터도 Key와 Value로 이루어져 있기는 하나, 배열에서는 Key가 오직 index, 즉 숫자만 가능한 것에 비해 H.. 2019. 10. 8.
자바스크립트의 자료구조 1 : 배열(Array) *Udemy의 "Master the Coding Interview : Data Structures + Algorithms" 강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 자료구조 - 배열 배열은 대부분의 프로그래밍 언어에서, 가장 간단하고 가장 많이 쓰이는 자료구조형이다. 배열의 경우 자료들이 메모리 주소(선반)에 순서대로 차곡차곡 정렬되어 있기 때문에, 특정 데이터를 순차적으로 iterate해야 하는 경우 배열은 최상의 자료구조형이다. (참고로 알고리즘 문제 또는 면접에서 string은 배열로 간주해서 풀어도 무방하다.) const strings = ['a', 'b', 'c',.. 2019. 9. 26.
자바스크립트의 자료구조 *Udemy의 "Master the Coding Interview : Data Structures + Algorithms" 강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 자료 구조? 알고리즘? 자료 구조란, 말 그대로 정보(자료)를 저장하는 형태를 의미한다. 알고리즘이란, 자료 구조의 정보를 사용하기 위한 일련의 과정을 의미한다. 각각의 자료 구조는 형태가 다르고, 따라서 각각의 장단점도 다르다. 예를 들어 옷장, 서랍, 파일철 모두 무언가를 담는다는 의미에서 모두 같은 container이지만, 각각의 용도와 장단점이 모두 다른 것과 유사하다. 자료 구조의 종류는 굉장히 많다. .. 2019. 8. 28.
자바스크립트에서 Big O(시간 복잡도)란? *Udemy의 "Master the Coding Interview : Data Structures + Algorithms" 강의에서 학습한 내용을 정리한 포스팅입니다. *https://soldonii.github.io에서 2019년 8월 19일(월)에 작성한 글을 티스토리로 옮겨온 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 좋은 코드란? 좋은 코드의 조건은 크게 3가지이다. ① READABLE : 읽고 이해할 수 있는가 ② EFFICIENCY : 메모리를 효율적으로 사용하는가 ③ SCALABLE : input의 규모가 커져도 느려지지 않는가 Big O는 코드가 Scalable한 코드인지, 알고리즘을 수행할.. 2019. 8. 27.