반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 국비코딩
- 이안의평일코딩
- 정보처리기사
- 리액트
- Oracle
- Java의정석
- CSS
- php
- 정보처리기사실기요약
- 오라클
- 정보처리기사실기정리
- spring
- javascript
- 정보처리기사요약
- 평일코딩
- react
- 자바스크립트
- 코딩테스트
- 스프링
- 자스코테
- 자바의정석
- 정보처리기사정리
- 리액트네이티브
- VUE
- 타입스크립트
- ReactNative
- 국비IT
- typescript
- 정보처리기사실기
- 자바스크립트 코딩테스트
Archives
- Today
- Total
이안의 평일코딩
그래프 2) 방향 그래프, 무방향 그래프, 가중치 방향그래프 정리 본문
반응형
방향 그래프(directed graph)와 무방향 그래프(undirected graph)는 이동방향의 유무 차이로 구분한다.
방향 그래프는 이동할 수 있는 방향이 정해져있고 무방향은 명칭대로 방향이 없어 양쪽 다 가능하다.
// 방향 그래프
let arr = [[1, 2],[1, 3],[1, 4],[2, 1],[2, 3],[2, 5],[3, 4],[4, 2],[4, 5]];
let graph = Array.from(Array(n + 1), () => Array(n + 1).fill(0));
for (let [a, b] of arr) { // arr 값 1개 씩 탐색
graph[a][b] = 1; // 방향 그래프에서 graph arr 에 1로 체크
} // 1로 체크되어 있으면 갈 수 있는 방향인 것
//console.log(graph)
/* 1 2 3 4 5
0: (6) [0, 0, 0, 0, 0, 0]
1: (6) [0, 0, 1, 1, 1, 0]
2: (6) [0, 1, 0, 1, 0, 1]
3: (6) [0, 0, 0, 0, 1, 0]
4: (6) [0, 0, 1, 0, 0, 1]
5: (6) [0, 0, 0, 0, 0, 0]
*/
// 무방향 그래프
let arr = [[1, 2],[1, 3],[1, 4],[2, 1],[2, 3],[2, 5],[3, 4],[4, 2],[4, 5]];
let graph = Array.from(Array(n + 1), () => Array(n + 1).fill(0));
for (let [a, b] of arr) {
graph[a][b] = 1;
graph[b][a] = 1; // 무방향은 양쪽 다 갈 수 있다
//console.log(graph)
/* 1 2 3 4 5
0: (6) [0, 0, 0, 0, 0, 0]
1: (6) [0, 0, 1, 1, 1, 0]
2: (6) [0, 1, 0, 1, 1, 1]
3: (6) [0, 1, 1, 0, 1, 0]
4: (6) [0, 1, 1, 1, 0, 1]
5: (6) [0, 0, 1, 0, 1, 0]
*/
가중치 그래프(weighted graph)는 edge가 값(value)나 비용(cost)를 가지고 있는 경우의 그래프다.
// 가중치 방향그래프
let arr = [[1, 2, 2],[1, 3, 4],[2, 5, 5],[3, 4, 5],[4, 2, 2]];
let graph = Array.from(Array(n + 1), () => Array(n + 1).fill(0));
for (let [a, b] of arr) {
graph[a][b] = c; // 가중치를 넣어주면 된다
//console.log(graph)
/* 1 2 3 4 5
0: (6) [0, 0, 0, 0, 0, 0]
1: (6) [0, 0, 2, 4, 0, 0]
2: (6) [0, 0, 0, 0, 0, 5]
3: (6) [0, 0, 0, 0, 5, 0]
4: (6) [0, 0, 2, 0, 0, 0]
5: (6) [0, 0, 0, 0, 0, 0]
*/
반응형
'Study > JS Algorithm Rocket' 카테고리의 다른 글
그래프 4) DFS와 BFS의 차이 (0) | 2021.12.03 |
---|---|
그래프 3) 인접행렬과 인접리스트의 차이 (0) | 2021.12.01 |
그래프 1) binary tree, vertex, node, edge 용어 정리 (0) | 2021.12.01 |
[JS] 재귀함수 알고리즘 (스택프레임) (0) | 2021.11.08 |
[자료구조(스택, 큐)] 크레인 인형뽑기 (카카오 기출) (0) | 2021.10.06 |
Comments