Skip to content

Commit 873a6e7

Browse files
committed
[Silver II] Title: 연결 요소의 개수, Time: 704 ms, Memory: 109244 KB -BaekjoonHub
1 parent 11f690b commit 873a6e7

2 files changed

Lines changed: 28 additions & 35 deletions

File tree

백준/Silver/11724. 연결 요소의 개수/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44

55
### 성능 요약
66

7-
메모리: 101008 KB, 시간: 912 ms
7+
메모리: 109244 KB, 시간: 704 ms
88

99
### 분류
1010

1111
그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색
1212

1313
### 제출 일자
1414

15-
2024년 1월 29일 09:52:26
15+
2026년 2월 19일 16:50:32
1616

1717
### 문제 설명
1818

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,40 @@
11
// /dev/stdin
22
const fs = require("fs");
3-
let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n')
3+
let input = fs
4+
.readFileSync("/dev/stdin")
5+
.toString()
6+
.split("\n")
7+
.map((x) => x.replace("\r", ""));
48

5-
const [n, m] = input[0].split(' ').map(Number);
9+
const [N, M] = input[0].split(" ").map(Number);
610

7-
// 노드에 이어진 배열 만들기
8-
const arr = [];
9-
for(let i = 0; i <= n; i++) {
10-
arr[i] = []
11-
}
11+
const graph = Array.from({ length: N + 1 }, () => Array());
1212

13-
const visited = [];
14-
for(let i = 1; i <= n; i++) {
15-
visited[i] = false;
13+
for (let i = 1; i <= M; i++) {
14+
const [x, y] = input[i].split(" ").map(Number);
15+
graph[x].push(y);
16+
graph[y].push(x);
1617
}
1718

18-
// 배열에 채워넣기
19-
// 방문 테이블 만들기
20-
for(let i = 1; i <= m; i++) {
21-
const [u, v] = input[i].split(' ').map(Number)
22-
arr[u].push(v)
23-
arr[v].push(u)
24-
}
25-
// console.log(arr)
26-
// console.log(visited)
27-
28-
let cnt = 0;
29-
for(let i = 1; i < arr.length; i++) {
30-
if(visited[i] == false) {
31-
dfs(i)
32-
cnt++
19+
const visited = Array(N).fill(false);
20+
21+
let result = 0;
22+
23+
for (let i = 1; i <= N; i++) {
24+
if (!visited[i]) {
25+
result++;
26+
visited[i] = true;
27+
dfs(i);
3328
}
34-
3529
}
3630

37-
function dfs(node) {
38-
// console.log('node',node)
39-
visited[node] = true;
40-
for(const item of arr[node]) {
41-
if(visited[item] == false) {
42-
dfs(item)
31+
function dfs(i) {
32+
for (const next of graph[i]) {
33+
if (!visited[next]) {
34+
visited[next] = true;
35+
dfs(next);
4336
}
4437
}
4538
}
46-
console.log(cnt)
4739

40+
console.log(result);

0 commit comments

Comments
 (0)