개발자 피터
Peter's Dev Blog
개발자 피터
전체 방문자
오늘
어제
  • 분류 전체보기 (77)
    • 🧑🏻‍💻 Develop (13)
      • Devops (3)
      • Elasticsearch (3)
      • Design Pattern (1)
      • SQL (4)
      • Architecture (1)
      • APM (1)
    • 💻 Service (7)
      • E-ROOM (3)
      • Briefing (4)
    • 💡 Problem Solving (43)
      • Baekjoon (40)
      • Programmers (2)
    • 📚 Reading (12)
      • Tech (9)
      • Self-Help (3)
    • 💬 Etc (1)
    • 📈 Retrospective (1)

블로그 메뉴

  • 🌟 깃허브
  • 🏷️ 태그 클라우드
  • 📝 방명록

공지사항

인기 글

태그

  • elasticsearch
  • boj
  • 백준
  • 백트래킹
  • MySQL
  • SQL
  • Programmers
  • 브루트포스
  • java
  • 구현
  • 독서
  • 그리디
  • briefing
  • E-ROOM
  • 문자열

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
개발자 피터

Peter's Dev Blog

💡 Problem Solving/Baekjoon

[백준 - 11724] 연결 요소의 개수 [C++]

2020. 4. 20. 01:32
728x90
반응형

1. 문제

https://www.acmicpc.net/problem/11724

 

11724번: 연결 요소의 개수

첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다.

www.acmicpc.net

 

2. 설명

: 무방향 그래프가 주어졌을 때, 방문하지 않은 정점에 대해 dfs로 그 정점과 연결된 모든 정점들을 방문하며 visited배열에 체크해줍니다. 그렇게 한다면 아래 코드에서 cnt++가 실행되는 횟수가 결국 연결 요소(Connected Component)의 개수가 됩니다.

 

 

3. 코드

#include <iostream>
#include <vector>
using namespace std;
vector <int> v[1001];
int n, m, x, y, cnt;
bool visited[1001];

void dfs(int x) {
	visited[x] = true;
	for (int i = 0; i < v[x].size(); i++) {
		int n = v[x][i];
		if (!visited[n]) dfs(n);
	}
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cin >> n >> m;
	for (int i = 1; i <= m; i++) {
		cin >> x >> y;
		v[x].push_back(y);
		v[y].push_back(x);
	}
	for (int i = 1; i <= n; i++) {
		if (!visited[i]) {
			cnt++;
			dfs(i);
		}
	}
	cout << cnt;
	return 0;
}
728x90
반응형

'💡 Problem Solving > Baekjoon' 카테고리의 다른 글

[백준 - 14888] 연산자 끼워넣기 [C++]  (0) 2021.01.14
[백준 - 10819] 차이를 최대로 [c++]  (0) 2021.01.14
[백준 - 11403] 경로찾기 [C++]  (1) 2020.04.20
[백준 - 1012] 유기농 배추 [C++]  (2) 2020.04.17
[백준 - 2667] 단지번호붙이기 [C++]  (1) 2020.04.17
    '💡 Problem Solving/Baekjoon' 카테고리의 다른 글
    • [백준 - 14888] 연산자 끼워넣기 [C++]
    • [백준 - 10819] 차이를 최대로 [c++]
    • [백준 - 11403] 경로찾기 [C++]
    • [백준 - 1012] 유기농 배추 [C++]
    개발자 피터
    개발자 피터
    Backend Engineer 🔥

    티스토리툴바