728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/43162
#include <string>
#include <vector>
#include<iostream>
using namespace std;
#define COM_SIZE 201
int visit[COM_SIZE];
void dfs(int n,int idx, vector<vector<int>> com) {
for (int i = 0; i < n; i++) {
if (visit[i] == 0 && com[idx][i] == 1) {
visit[i] = 1;
dfs(n, i, com);
}
}
}
int solution(int n, vector<vector<int>> computers) {
int answer = 0;
for (int i = 0; i < n; i++) {
if (visit[i] == 0) {
visit[i] = 1;
answer++;
dfs(n, i,computers);
}
}
return answer;
}
int main(void) {
cout << solution(3, {{1, 1, 0}, { 1, 1, 0}, { 0, 0, 1 }});
return 0;
}
그래프의 일종인데 0번부터 시작해서 n-1까지 탐색을 진행해서 그것이 몇개 인지만 세면 됩니다.
어렵지는 않은데 처음에는 헷갈릴수 있어요 그러지 참고 하세요
728x90
반응형
'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글
프로그래머스 여행 경로 (0) | 2020.07.17 |
---|---|
프로그래머스 단어변환 (0) | 2020.07.16 |
프로그래머스 타겟넘버 (0) | 2020.07.16 |
17135 캐슬디펜스 (0) | 2020.07.16 |
9944 NxM 보드 완주하기 (0) | 2020.07.16 |
댓글