분류 전체보기
-
모던 자바스크립트 Deep Dive - 데이터 타입JavaScript 2021. 9. 16. 18:58
이미지 출처 : https://velog.io/@imjkim49/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%80%EC%9E%85-%EC%A0%95%EB%A6%AC 자바스크립트- 데이터 타입 정리 자바스크립트 데이터 타입은 기본형, 참조형 이렇게 크게 두가지로 볼 수 있다.일전 자바스크립트 이해하기-2 에서도 간략하게 살펴보았었지만 책을 읽고 정리해보면서 더욱 자세하게 살펴보려 velog.io 데이터 타입의 필요성 [ 숫자 타입 1과 문자열 '1'은 확보해야 할 메모리 공간의 크기가 다르다. ] [ 1 ] 메모리에 값을 저장하려면 먼저 확보해야 할 메모리 공간의 크기를 결정해야 한다. =>..
-
모던 자바스크립트 Deep Dive - 표현식과 문JavaScript 2021. 9. 16. 18:58
keyword [ 표현식 , 문 ] 값 : 식이 평가되어 생성된 결과 리터럴 : 사람이 이해할 수 있는 문자 or 약속된 기호를 사용해 값을 생성하는 표기법 자바스크립트 엔진은 런타임 시점에 리터럴을 평가해 값을 생성한다. 표현식 표현식 : 값으로 평가될 수 있는 문 표현식이 평가되면 새로운 값을 생성하거나 값을 참조 한다. let score = 100; // 숫자값 100 생성 => 표현식 let score = 50 + 50; // 100 => 값으로 평가 => 표현식 score ; // 표현식 'Hello' // 식별자 표현식 sum person.name arr[1] // 함수, 메서드 호출 표현식 square() person.getName() 문 토큰 : 문법적으로 더 이상 나눌 수 없는 코드의 기..
-
모던 자바스크립트 Deep Dive - 변수JavaScript 2021. 9. 16. 18:58
keyword : [ 변수 , 메모리 , 식별자 , 선언 , 호이스팅 , 할당 ] 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 메모리 공간을 식별하기 위한 이름 변수란 무엇인가? 왜 필요한가? 애플리케이션은 데이터를 다룬다. 아무리 복잡한 애플리케이션이라 해도 결국에는 데이터를 입력 받아서 처리 과정을 거친 후, 결과를 출력하는 것이다. 컴퓨터는 CPU를 사용해 연산한다. 메모리를 사용해 데이터를 기억한다. 메모리 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체 이다. 메모리 셀 하나의 크기는 1바이트이다. 컴퓨터는 1바이트 단위로 데이터를 저장하거나 읽는다. 각 셀은 고유의 메모리 주소를 갖는다. 메모리 주소 = 메모리 공간의 위치 메모리에 저장되는 모든 값은 2진수로 저장된다. CP..
-
Chap 11. 그래프자료구조 with 윤성우 2021. 1. 30. 03:29
정점 : 연결의 대상이 되는 개체 또는 위치 간선 : 정점 사이의 연결 - 무방향 그래프 연결 관계에 있어서 방향성이 없는 그래프 - 방향 그래프 간선에 방향정보가 포함된 그래프 - 완전 그래프 각각의 정점에서 다른 모든 정점을 연결한 그래프 - 가중치 그래프 간선에 가중치 정보를 두어서 그래프를 구성 ex) 두 정점 사이의 거리 - 부분 그래프 그래프의 일부 정점 및 일부 간선으로 이루어진 그래프 - 무 방향 그래프 정방 행렬 - 방향 그래프 정방 행렬 - 무방향 그래프 연결리스트 - 방향 그래프 연결리스트 ex) 비상 연락망 - 한 사람에게만 연락한다. - 연락할 사람이 없으면, 자신에게 연락한 사람에게 알린다. - 처음 연락을 시작한 사람의 위치에서 연락은 끝이 난다. - 보낼 수 있는 사람 모두에..
-
Chap 10. 테이블과 해쉬자료구조 with 윤성우 2021. 1. 30. 03:08
해쉬 테이블은 빠른 탐색을 한다. 하지만, 트리의 언급은 없다. 테이블의 탐색 시간 복잡도는 O(1)을 나타낸다. 저장하는 데이터에 대하여 키와 값으로 하나의 쌍을 이룰 경우에 테이블이라 칭한다. 키는 유일해야한다. 키가 존재하지 않는 값은 존재할 수 없다. 테이블의 문제점 - key의 범위가 배열의 인덱스 값으로 사용하기에 적당하지 않을 수 있다. - key의 범위를 수용할 수 있는 매우 큰 배열이 필요하다. 위 두가지 문제를 해결해주는 '해쉬 함수'가 존재한다. '해쉬 함수'는 넓은 범위의 키를 좁은 범위의 키로 변경하는 역할을 한다. '충돌' 이란 해쉬 함수를 통과하였는데, 키의 값이 동일한 경우를 나타낸다. '충돌'은 피하는게 아니라, 해결을 해야한다. 좋은 해쉬 함수 - '충돌'이 발생활 확률이..
-
Chap 09. AVL(균형 잡힌 이진 트리)자료구조 with 윤성우 2021. 1. 30. 02:51
이진 탐색 트리의 시간 복잡도는 O(log2N)이다. 하지만 균형이 맞지 않다면 O(N)에 가까워진다. ==>> 높이가 중요함. 시간 복잡도는 애초에 높이에 의해 결정되었기 때문이다. 따라서, '균형 잡힌 이진 트리'를 AVL이라고 한다. * 노드가 추가될 때, 노드가 삭제될 때 스스로 그 구조를 변경하여 균형을 잡는다. 균형 인수 = 왼쪽 서브 트리의 높이 - 오른쪽 서브 트리의 높이 '균형 인수'의 절댓값이 2 이상 ==>> 균형이 무너졌다. '균형 인수'가 무너진 경우 LL상태 자식 노드 두 개가 왼쪽으로 연이어 연결되어 '균형 인수'가 2이상이다. RR상태 자식 노드 두 개가 오른쪽으로 연이어 연결되어 '균형 인수'의 절댓값이 2 이상이다. LR상태 자식노드가 왼쪽으로 하나, 그 자식 노드의 오른..
-
Chap 08. 탐색자료구조 with 윤성우 2021. 1. 30. 02:41
탐색 : 데이터를 찾는 방법 탐색이 효율적이기 위해서는 효율적인 '저장방법'을 고려해야한다. 대표적으로 '이진 트리'가 효율적이다. 이진 탐색 - 탐색 대상을 반으로 줄여나가면서 탐색 - '찾는 대상의 위치에 따라 탐색의 효율에 차이가 발생'한다. 이진 탐색의 단점을 보완한 탐색이 보간탐색. 보간 탐색 - 대상에 비례하여 탐색의 위치를 결정 '이진 탐색'보다 '보간 탐색'이 더 효율적이다. 내가 찾고자 하는 데이터의 값에따라 탐색위치를 정해준다. low : 배열의 시작 인덱스 high : 배열의 마지막 인덱스 s : 찾고자하는 값의 배열 인덱스 배열의 값들이 정렬되어 있다면, 이진 트리에 저장된 데이터의 수가 10억개라면, 거치는 노드의 수는 30을 넘지 않는다. 이진 탐색 트리 = 이진 트리 + 데이터..