분류 전체보기(94)
-
[JS] 힙 (Heap)
1. 힙 (Heap) 힙은 완전 이진 트리에 있는 노드 중에서 키 값이 가장 큰 노드나 키 값이 가장 작은 노드를 찾기 위해서 만든 자료구조다. 키 값이 가장 큰 노드를 찾기 위한 힙을 최대 힙이라고 하고, 키 값이 작은 노드를 찾기 위한 힙을 최소 힙이라고 한다. 최대 힙은 부모노드의 키 값 > 자식노드의 키 값의 관계를 가지는 완전 이진 트리다. 따라서 최대 힙의 루트 노드는 가장 큰 값이 된다. 하지만 최소 힙은 부모노드의 키 값 ..
2020.06.13 -
[JS] 자료의 형 변환
자바스크립트에는 총 8가지의 자료형이 있지만 대표적으로는 문자, 숫자, 불린 타입의 자료형이 있다. 그런데 코딩을하다보면 문자열 "123"을 숫자 123으로 변환해서 쓸 때가 있는데, 이렇게 자료의 형을 변환시켜서 사용하는 과정을 우리는 자료의 형 변환이라고 한다. 또한 명시적으로 변환을 안해줘도 alert함수와 같이 자동으로 형 변환을 해주는 경우도 존재한다. 주로 쓰이는 형 변환은 문자형으로의 변환, 숫자형으로의 변환, 불린형으로의 변환 세 가지가 있다. 이번 포스팅에서는 이 세 가지 변환을 다루려고 한다. 1. 문자형으로의 변환 문자형으로의 형 변환은 문자형의 값이 필요할 때 일어난다. alert 함수는 매개변수로 문자형을 받기 때문에 alert(value)의 경우 value는 문자형이어야만 한다...
2020.06.13 -
[JS] 이진 탐색 트리
1. 이진 탐색 트리란? 이진 탐색 트리란 이진트리를 사용하기 위해서 저장할 데이터의 크기에 따라 노드의 위치를 정의한 것을 말한다. 이진 탐색 트리의 특징은 다음과 같다. 모든 원소는 서로 다른 유일한 키를 갖는다. 왼쪽 서브트리에 있는 원소의 크기는 그 루트의 키보다 작다. 오른쪽 서브트리에 있는 원소의 키는 그 루트의 키보다 크다. 왼쪽, 오른쪽 서브트리도 이진 탐색 트리다. 이번 포스팅에서 다룰 것은 이진 탐색 트리에 대한 간략한 정의, 탐색, 삽입, 삭제 연산이다. 이진 트리의 순회에 대해서는 이전에 포스팅을 했으니 참고하길 바란다. 2. 탐색 연산 탐색은 항상 루트에서 시작된다. 따라서 먼저 키값과 루트 노드의 키값을 비교한다. 비교 결과는 다음의 세 가지 중 하나가 될 것이다. (키값 x =..
2020.06.12 -
[JS 33가지 개념] 1. 함수의 동기적 호출과 콜 스택의 관계성
콜 스택은 함수의 호출을 기록하는 자료구조다. 우리가 함수를 선언하고 호출하게되면 호출된 함수는 스택에 쌓였다가 실행된다. 여기서 스택이란 LIFO(Last In First OUT)구조를 말하는데, 첫 번째로 들어오면 마지막에 나가고, 마지막에 들어오면 첫 번째로 나간다는 뜻이다. 다음 코드를 보자. console.log("a"); console.log("b"); console.log("c"); 이 코드를 출력한다면? 어떤 출력 결과가 뜰까? 자바스크립트를 이용해 Hello world라는 메세지를 콘솔을 이용해서 출력해 본 사람이라면 "a", "b", "c" 순서로 출력이 뜰 것이라는 것은 알 것이다. 그런데 왜 이런 결과가 뜨는 것일까? 바로 콜 스택이라는 자료구조를 이용하기 때문이다. 그림으로 표현하..
2020.06.11 -
[JS] 프로그래머스 - 가장 큰 수(레벨 2)
문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한사항 numbers의 길이는 1 이상 100,000 이하이다. numbers의 원소는 0이상 1,000 이하이다. 정답이 너무 클 수도 있으니 문자열로 바꾸어 return한다. 입출력 예 [6, 10, 2] "6210" [3, 30, 34..
2020.06.11 -
[JS] 자바스크립트의 자료형
1. 숫자형 정수, 부동 소수점과 같은 숫자 등의 수를 나타낼 때 사용한다. 곱셈(*), 나눗셈(/), 덧셈(+), 뺄셈(-) 등을 이용해서 연산이 가능하다. 일반적인 숫자 외에 Infinity, -Infinity, NaN과 같은 특수 숫자 값이 존재한다. const num = 3.5; // 3.5 /* 자바스크립트는 정수, 소수를 구분하는 형이 없다.*/ console.log(num/3); // 1.1666666666666667 console.log(parseInt(num/3)); // parseInt를 이용해서 1.1666666666666667에서 정수 부분 1을 가져오게 할 수 있다. /* 숫자형의 사칙연산 */ console.log("더하기:", 3 + 3.5); // 6.5 console.log..
2020.06.10