반응형
문제 출처
https://programmers.co.kr/learn/courses/30/lessons/43162
dfs로 전체 탐색을 하면서 순회가 끝나면 answer값을 1씩 증가시켜주면 된다.
예시를 이해하는데 시간이 좀 걸리긴 했지만 구현자체는 쉬운 문제
소스코드
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 | #include <string> #include <vector> #include <algorithm> using namespace std; bool visit[200]; void dfs(int start, vector<vector<int>> &computers, int n) { visit[start]=1; for(int i=0; i<n; i++) { if(!visit[i] && computers[start][i]) dfs(i, computers, n); } } int solution(int n, vector<vector<int>> computers) { int answer = 0; for(int i=0; i<n; i++) { if(!visit[i]) { answer++; dfs(i, computers, n); } } return answer; } | cs |
반응형
'Algorithm' 카테고리의 다른 글
[카카오 2019] 코딩테스트 - 실패율 (0) | 2019.01.03 |
---|---|
[프로그래머스 42842] 카펫 (2) | 2019.01.02 |
[BOJ 6603] 로또 (0) | 2018.12.31 |
[BOJ 2667] 단지번호붙이기 (0) | 2018.12.31 |
[Programmers 43165] 타겟넘버 (0) | 2018.12.31 |