반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 가상면접2장
- 헤드퍼스트전략패턴
- formik react-query submitting not working
- 전략패턴
- 시스템설계면접예시
- react
- 시스템설계
- git commit merge
- file not found Error
- git commit 협업
- awss3
- 리팩터링2판테스트
- 시스템설계면접팁
- Git commit 합치기
- cypress React
- 가상면접3장
- git squash
- 가상면접으로대규모시스템
- 테스트코드책
- 시스템설계면접
- react-ga
- 시스템설계방법
- cypressBDD
- 디자인패턴
- formik submitting not working
- s3이미지다운로드됨
- gitsquash
- 리액트구글애널리틱스
- 리팩토링2판4장
- FirebaseAnalytics
Archives
- Today
- Total
mingg IT
[JAVA] 프로그래머스 네트워크 본문
programmers.co.kr/learn/courses/30/lessons/43162?language=java
코딩테스트 연습 - 네트워크
네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있
programmers.co.kr
우선 DFS로 풀었으며 풀면서 내가 크게 착각한것이 있다.
DFS로 풀 때 항상 2차원 배열을 만들고 두 그래프가 대칭이라고 생각했었고, 주어진 케이스에서도 대칭인줄 알았으나
그렇게 생각하고 풀게 되니 테스트 케이스가 2개만 맞았다.
1->2 (0) 2->1 (X 일 수도 있음)
이 사실을 깨닫고 풀이를 고치니 맞았음.
public class Network {
static int [] visited = new int[201];
public static void DFS(int startx, int n, int [][]computers) {
visited[startx] = 1;
for(int i = 0 ; i < n; i++ ) {
if(visited[i] == 0 && computers[startx][i] == 1) {
DFS(i, n, computers);
}
}
}
public static int solution(int n, int[][] computers) {
int answer = 0;
for(int i = 0; i<n; i++) {
//computers[i][j] 는 항상 1이기 떄문에 0부터 시작해도 된다.
if(visited[i]== 0) {
DFS(i,n, computers);
answer ++;
}
}
return answer;
}
public static void main(String[] args) {
int [][] test = {{1,1,0}, {1,1,1}, {0,0,1}};
int ans = solution(3, test);
}
}
'코딩테스트' 카테고리의 다른 글
[Java] String 길이 만큼 배열 정렬 하는 법 (0) | 2021.07.19 |
---|---|
[코딩테스트] 정리 (0) | 2021.06.22 |
[JAVA] 프로그래머스 소수 찾기 (0) | 2021.04.23 |
[JAVA] 프로그래머스 문자열 압축 (0) | 2021.04.17 |
[JAVA] 프로그래머스 스킬 트리 (0) | 2021.04.17 |
Comments