[BOJ/백준] 11724번. 연결 요소의 개수 - C++[cpp]

2024. 7. 13. 23:49·PS/BOJ
목차
  1. 문제
  2. 틀렸던 부분
  3. 코드

문제

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

 

 

 

무방향 그래프에서 연결 요소를 찾는 문제

틀렸던 부분

N개의 노드가 있고, 1개의 간선이 있다고 하자. 그러면 연결 요소는 1개가 아니라 N-2개여야 한다. 즉, 연결되어있지 않은 노드들을 고려하지 않아서 2트한 문제이다.

 

코드

#include <bits/stdc++.h>
using namespace std;

bool vis[1002];
unordered_set<int> sub;
vector<int> adj[1002];

void DFS(int start) {
    vis[start] = 1;
    sub.erase(start);
    for (int i = 0; i < adj[start].size(); i++) {
        int next = adj[start][i];
        if (!vis[next]) {
            DFS(next);
        }
    }
}

int main(void) {
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int n, m, count;
    cin >> n >> m;
    for (int i = 0; i < m; i++) {
        int s, e;
        cin >> s >> e;
        adj[s].push_back(e);
        adj[e].push_back(s);
        sub.insert(s);
        sub.insert(e);
    }

    // 정점이 연결되어 있지 않는 부분도 고려해야 한다
    count = n - sub.size();

    while (!sub.empty()) {
        DFS(*sub.begin());
        count++;
    }
    cout << count;
}

 

방문했던 곳인지를 O(1)에 확인하기 위해서 Hash Set(unordered_set)을 사용해봤는데, 과연 이게 실행시간에 도움이 되는지는 잘 모르겠다 ㅎㅎ. 재귀가 아닌 Stack을 이용하여 문제를 풀면 아마 시간을 조금 더 단축할 수 있을 듯

 

 

'PS > BOJ' 카테고리의 다른 글

[PS/BOJ] 20166번. 문자열 지옥에 빠진 호석 - C++[cpp]  (0) 2024.10.10
[BOJ/백준] 1086번. 박성원 - C++[cpp]  (0) 2024.09.07
[BOJ/백준] 11286번. 절댓값 힙 - C++[cpp]  (0) 2024.06.24
[BOJ/백준] 25501번. 재귀의 귀재 - C++[cpp]  (0) 2024.04.29
[BOJ/백준] 24511번. queuestack - Java[자바]  (0) 2024.03.31
  1. 문제
  2. 틀렸던 부분
  3. 코드
'PS/BOJ' 카테고리의 다른 글
  • [PS/BOJ] 20166번. 문자열 지옥에 빠진 호석 - C++[cpp]
  • [BOJ/백준] 1086번. 박성원 - C++[cpp]
  • [BOJ/백준] 11286번. 절댓값 힙 - C++[cpp]
  • [BOJ/백준] 25501번. 재귀의 귀재 - C++[cpp]
lumana
lumana
배움을 나누는 공간 https://github.com/bebeis
  • lumana
    Brute force Study
    lumana
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Spring
        • MVC
        • DB
        • 핵심 원리
        • JPA
      • WEB
        • HTML
        • CSS
        • HTTP
        • Application
      • Computer Science
        • Network
        • Database
        • OS
        • 시스템 프로그래밍
        • 컴퓨터구조
      • Algorithm
        • Divide&Conquer
        • Sort
        • Greedy
        • DP
        • Backtracking
        • NP-Complete
        • Graph
      • Data Structure
        • 자료구조
        • C++ STL
        • Java Collection
      • 소프트웨어 공학
        • 시험 공부 정리
        • Theorem
      • Programming Language
        • Python
        • Java
        • C
        • C++
        • Rust
        • Theory
      • Unix_Linux
        • Common
      • React
      • PS
        • BOJ
        • Tip
        • 프로그래머스
        • CodeForce
      • Book Review
        • Clean Code
      • Math
        • Linear Algebra
      • AI
        • DL
        • ML
        • DA
        • Concepts
      • 우아한테크코스
        • 프리코스
      • Project Review
      • LegacyPosts
      • Android
      • Apple
        • Mac
        • IPhone
        • IPad
      • 모니터
      • Diary
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
lumana
[BOJ/백준] 11724번. 연결 요소의 개수 - C++[cpp]
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.