[백준/C++] 연결 요수의 개수_11724_S2

leeact·2023년 4월 21일
1

[백준/c++]

목록 보기
3/24
post-thumbnail

📝 문제

💻 코드

#include <iostream>
#include <string>
#include <vector>

using namespace std;
// 그래프 data를 전역 변수 <- 모든 함수에서 공통적으로 볼 수 있게
int arr[1001][1001] = { 0, };
int cntNode;				// 노드의 개수
int check[1001] = { 0, };	// 방문 체크

void dfs(int now) // 지금 now라는 노드에 있다.
{
	check[now] = 1;
	for (int next = 1; next <= cntNode; next++) {
		if (arr[now][next] == 0)
			continue;
		if (check[next] == 1)
			continue;
		dfs(next);
	}
}

// now에서 갈 수 있는 next는 어떤 data들을 확인하면 알 수 있을까요?

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int cntEdge;
	cin >> cntNode >> cntEdge;
	for (int i = 0; i < cntEdge; i++) {
		int from, to;
		cin >> from >> to;
        // 단방향X
		arr[from][to] = 1;
		arr[to][from] = 1;
	}

	int ans = 0;
	for (int i = 1; i <= cntNode; i++) {
		if (check[i] == 1)
			continue;
		dfs(i);
		ans += 1;
	}

	cout << ans;

	return 0;
}

💡 Point

C++로 처음 풀은 그래프 문제😄
처음에 문제를 제대로 안읽어서 방향이 없는 그래프를 단방향 그래프로 생각하고 문제를 풀어서 애를 먹었다...

2개의 댓글

comment-user-thumbnail
2023년 4월 21일

실력이 날로 늘어가는군요!!!!!!!!

1개의 답글