js(10)
-
[알고리즘] 정렬 - 합병정렬(병합정렬, Merge Sort) (자바스크립트/javascript)
합병정렬(병합정렬, Merge Sort) - 전체 데이터를 하나의 단위로 분할한 후 분할한 것들을 다시 병합하는 정렬 방식 - 분할 정복 알고리즘에 속함 (분할 정복 : 어떤 문제를 그대로 해결할 수 없을 때 작은 문제로 분할해서 푸는 방법) 시간 복잡도 O(NlogN) - 최선이든 최악이든 같음 장점 - 어떠한 경우에도 좋은 성능을 보장한다. - 중복된 데이터의 순서가 바뀌지 않는 stable한 정렬이다. 단점 - 30 개 이하의 숫자를 정렬할 때는 삽입 정렬과 별 차이가 없음 - 정렬하는데 추가 메모리가 필요함 (in-place 알고리즘이 아님) 구현 function mergeSort(array) { if (array.length < 2) { return array; } let pivot = Math..
2021.05.05 -
[Javascript] primitive 변수와 object 변수의 차이점(자바스크립트/javascript/js)
변수 - primitive 타입과 object 타입 변수의 차이점 🍋 리액트를 공부할 때 PureComponent와 관련해서 shallow comparison 을 이해하기 위해 먼저 알아두어야 할 개념이다. 1. primitive(원시 타입) 변수 primitive(원시 타입) 변수 : number, string, boolean, null, undefined, symbol let number = 2; 이렇게 primitive 타입 변수는 변수를 선언함과 동시에 메모리에 공간이 생기게 되고 그 공간에 데이터가 적재되어진다. let number = 2; let number2 = number; console.log(number); // 2 console.log(number2); // 2 이렇게 number2 ..
2021.04.29 -
[백준] 2751. 수 정렬하기 2 (node.js/javascript/자바스크립트/정렬/힙정렬/알고리즘/코딩테스트)
내가 작성한 코드 (자바스크립트) let fs = require("fs"); let input = fs.readFileSync("/dev/stdin").toString().split("\n"); const size = Number(input[0]); class Heap { constructor() { this.items = []; } //swap swap(index1, index2) { let temp = this.items[index1]; this.items[index1] = this.items[index2]; this.items[index2] = temp; } //parentIndex parentIndex(index) { return Math.floor((index - 1) / 2); } //left..
2021.04.29 -
#4.0 Fetching Movies from API
#4.0 Fetching Movies from API 🌼 이번시간에는 axios를 이용해서 API로부터 데이터를 fetch해올 것이다. 일반적으로 사람들이 자바스크립트에서 데이터를 fetch하는 방법은 fetch를 사용하는 것이다. 니콜라스는 fetch를 좋아하지는 않는다. 왜냐하면 더 좋은 방법이 있기 때문이다. Axios를 사용할 것이다. Axios는 니콜라스가 많이 사용했고 좋아한다. axios가 어떻게 동작하는지 궁금하다면, 이건 매우 쉽다. axios는 마치 fetch 위에 있는 작은 layer 이다. axios 설치 : npm install axios 🌼YTS의 API를 이용하기 우리가 쓸 API에 대해서 이야기하겠다. 우리는 YTS에서 만든 API를 사용할 것이다. 불법적인 토렌트 영화를 업..
2021.04.14 -
#3.2 Component Life Cycle
#3.2 Component Life Cycle 🍑 이번 시간에는 리액트 컴포넌트의 life cycle 메소드에 대해서 알아보겠다. 현재 우리는 리액트 컴포넌트에서 제공하는 메소드 중에서 render 메소드만 사용하고 있다. 그런데 사실 리액트 컴포넌트는 단순히 render 말고 더 많은 걸 가지고 있다. 이들은 life cycle 메소드를 가지는데, life cycle 메소드는 기본적으로 리액트가 컴포넌트를 생성하는 그리고 없애는 방법이다. 컴포넌트가 생성될 때 render 전에 호출되는 몇 가지 function이 있다. 컴포넌트가 render 된 후 호출되는 function 들이 존재한다. 예를 들면 우리가 add 함수를 통해 +1 +1 +1을 할 때 , 컴포넌트가 업데이트 될 때 호출되는 다른 함수가..
2021.04.12 -
#3.0 Class Components and State
#3.0 Class Components and State 🍧 이번 시간에는 state에 대해 배워보겠다. 이제 state에 대해 배워볼 것인데, state는 보통 우리가 동적 데이터와 함께 작업할 때 만들어진다. 그러나 우리가 지난시간 까지 했던 food 예제는 일일이 데이터를 손으로 입력했기 때문에 state를 배우기에 적절한 예제가 아니므로 지운다. import React from "react"; import PropTypes from "prop-types"; export default App; ( 이 상태에서 시작! ) 🍧 클래스 컴포넌트 사용하기 import React from "react"; import PropTypes from "prop-types"; class App extends Reac..
2021.04.12