본문 바로가기

전체 글39

[Node.js-Tutorial] 3. Functions 본 포스팅의 소스코드는 GitHub에서 확인할 수 있습니다. 3. Functions 이번 장에서는 함수에 대해서 다룰 예정입니다. (1) Arrow Function 두 수의 합을 출력하는 sum이라는 함수가 있습니다. 전통적인 javascript에서는 함수를 다음과 같이 두가지 방법으로 작성하고 사용했습니다. // 함수 선언식(function declaration) function sum(a,b){ return a+b; } // 함수 표현식(function expression) const sum2=function(a,b){ return a+b; } console.log(sum(11,22)); // 33 console.log(sum2(11,22)); // 33 일반화 하자면 다음과 같습니다. 함수 선언식은.. 2021. 7. 1.
[Node.js-Tutorial] 2. Variable 본 포스팅의 소스코드는 GitHub에서 확인하실 수 있습니다. 2. Variable 이번 장에서는 Javascript의 변수형과 자료형에 대해 다뤄보도록 하겠습니다. (1) 변수형 Javascript에서 변수는 let, 상수는 const를 이용하여 선언합니다. // 2-1_declaration.js let variable=1; variable=2; const constantVaraible=1; constantVaraible=2; // TypeError: Assignment to constant variable. 변수로 선언된 variable은 값을 2로 대입했을 때 별 이상이 발생하지 않았지만, 상수로 선언된 constantVariable의 값을 2로 대입할 때 TypeError가 발생했음을 확인할 수 .. 2021. 7. 1.
[Node.js-Tutorial] 1. Introduction 본 자료의 소스코드는 GitHub에서 확인하실 수 있습니다. 1. Introduction 이번 장에서는 Node.js에 대해 알아보고, 개발환경을 구성한 다음, 간단한 출력을 진행해보도록 하겠습니다. (1) Node.js 란? Node.js는 구글의 V8 엔진을 인터프리터로 사용하는 런타임입니다. 웹 프론트엔드에서만 사용되던 JavaScript를 브라우저 외의 다른 환경에서도 사용할 수 있게 한 것입니다. Node.js의 장단점 Node.js 장점은 세 가지가 있습니다. Javascript를 기반으로 하기 때문에, Javascript를 다뤄 보았다면 쉽게 익힐 수 있습니다. Node.js는 수 많은 모듈을 갖고 있습니다. 따라서 개발자가 이용하고자 하는 대부분의 모듈을 쉽게 구할 수 있습니다. 위 이미지.. 2021. 7. 1.
[BOJ] 백준 1865 - 웜홀 문제 링크 1865번: 웜홀 첫 번째 줄에는 테스트케이스의 개수 TC(1 ≤ TC ≤ 5)가 주어진다. 그리고 두 번째 줄부터 TC개의 테스트케이스가 차례로 주어지는데 각 테스트케이스의 첫 번째 줄에는 지점의 수 N(1 ≤ N ≤ 500), www.acmicpc.net 지점(정점), 도로(무방향 간선), 웜홀(음의 가중치를 갖는 유방향 간선)으로 이루어진 그래프에서 출발을 하였을때보다 시간이 되돌아가 있는 경우(음의 사이클)가 존재하는지 찾는 문제이다. Bellman-Ford 알고리즘으로 해결할 수 있었다. 해당 알고리즘은 아래 링크에서 확인 할 수 있다. 2021.04.06 - [Algorithm/Theory] - [Algorithm] Bellman-Ford Algorithm (벨만-포드 알고리즘) [.. 2021. 4. 6.
[Algorithm] Bellman-Ford Algorithm (벨만-포드 알고리즘) Bellman-Ford 알고리즘은 Dijkstra 알고리즘과 마찬가지로 단일 정점에서 각 정점까지의 최단거리를 구하는 알고리즘이다. 시작점은 1번 정점이다. dist배열은 시작점으로부터의 거리를 나타내고 INF로 초기화 되어있다. 초기상태는 아래와 같으며 그래프의 구현은 인접 행렬(Adjacency Matrix) W로 되어있다. 시작점이 1번 정점이기 때문에 dist[1]을 0으로 갱신한다. 한 정점과 인접한 정점을 중심으로 갱신을 이어나간 Dijkstra 알고리즘과는 달리 Bellman-Ford 알고리즘은 매 수행마다 모든 간선(edge)에 대해 갱신을 진행한다. 한 간선이 정점 i에서 정점 j로 이어진다고 할 때, 다음 연산을 통해 갱신이 진행된다. dist[j]=min(dist[j],dist[i]+.. 2021. 4. 6.
[BOJ] 백준 1753 - 최단경로 문제 링크 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. www.acmicpc.net 방향 그래프의 한 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 문제이다. 해당 문제는 Dijkstra 알고리즘을 사용하여 풀이했다. Dijkstra 알고리즘에 대한 설명은 아래 링크에서 확인할 수 있다. 2021.04.06 - [Algorithm/Theory] - [Algorithm] Dijkstra Algorithm (다익스트라 알고리즘) [Algorithm] Dijkstra Algorithm (다익스트라 알고리즘).. 2021. 4. 6.