반응형
https://programmers.co.kr/learn/courses/30/lessons/43162
자세한 문제의 설명은 링크를 참고하길 바란다.
간접 리스트를 구하고 chk배열을 이용하여 방문여부를 파악하면 된다.
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 32 33 34 35 36 37 38 39 40 | #include <string> #include <vector> #include <queue> #include <cstdio> using namespace std; int solution(int n, vector<vector<int>> computers) { int answer = 0; vector<int> v[201]; for (int i = 0; i < computers.size(); i++) { for (int j = 0; j < computers[i].size(); j++) { if (i == j) continue; if (computers[i][j] == 1) { v[i].push_back(j); v[j].push_back(i); } } } vector<bool> chk(n, false); queue<int> q; for (int i = 0; i < n; i++) { if (chk[i]) continue; chk[i] = true; q.push(i); answer += 1; while (!q.empty()) { int node = q.front(); q.pop(); for (int k = 0; k < v[node].size(); k++) { int next = v[node][k]; if (chk[next]) continue; chk[next] = true; q.push(next); } } } return answer; } | cs |
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스] level 3 - 가장 먼 노드, C++ (0) | 2020.05.08 |
---|---|
[프로그래머스] level 3 - N으로 표현, C++ (0) | 2020.05.07 |
[프로그래머스] 2019 카카오 개발자 겨울 인턴십 - 징검다리 건너기, C++ (0) | 2020.05.05 |
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT - 후보키, C++ (1) | 2020.05.05 |
[프로그래머스] 2019 카카오 개발자 겨울 인턴십 - 불량 사용자, C++ (0) | 2020.05.05 |
댓글