티스토리 뷰
코딩테스트 연습 - 네트워크
네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있��
programmers.co.kr
이문제는 전형적인 dfs라고 생각하고 풀었다. 딱 보자마자 탐색부터 해야지..라고 생각했는데 이게 그래프 노드의 숫자만 기억하면 되서 이차배열로 생각하다 복잡해졌었다. 쉬운문제이지만 기본기가 있어야 하는 문제라고 생각한다!
풀이방법
dfs로 탐색을 하면서 visited배열로 방문여부를 체크한다. 방문하지 않을경우 연결되지 않은 네트워크 이므로 따로 탐색을 한다.
package programers;
public class Network {
static boolean[] visited;
static int n;
public static void main(String[] args) {
n = 3;
int[][] computers = { { 1, 1, 0 }, { 1, 1, 1 }, { 0, 1, 1 } };
int answer=0;
visited = new boolean[n];
for (int i = 0; i < n; i++) {
if (visited[i] == false){
dfs(i, computers);
answer++;
}
}
System.out.println(answer);
}
public static void dfs(int node, int[][] computers) {
for(int i=0;i<n;i++){
if(visited[i]==false && computers[node][i]==1){
visited[i] = true;
dfs(i,computers);
}
}
}
}
'CS공부 > 알고리즘&문제풀이' 카테고리의 다른 글
[프로그래머스]DFS:여행경로(java) (0) | 2020.06.10 |
---|---|
[프로그래머스]DFS:단어변환(java) (0) | 2020.06.09 |
[프로그래머스]DFS:타겟 넘버(java) (0) | 2020.06.03 |
[백준 14889]스타트와 링크/삼성 sw역량 테스트 기출(java) (0) | 2020.05.28 |
[백준 16234]인구이동(java) (0) | 2020.05.26 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바
- JavaScript
- 운영체제
- 정렬
- MST
- Heap
- OS
- 삼성 sw역량 테스트
- sockjs
- programers
- 완전탐색
- git
- 최소 스패닝 트리
- SWEA
- Stomp
- 삼성 sw역량테스트
- 알고리즘
- java
- 백준
- DP
- Spring
- BFS
- 코딩테스트
- Baekjoon
- Oracle
- 프로그래머스
- 채팅
- dfs
- 분리 집합
- websocket
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함