풀이 과정 처음에는 입력값도 크고 그래서 잠시 유니온파인드인가? 라는 착각을 했었다.. 근데 그러한 문제는 아닌거 같고 그냥 DFS로 풀어보기로 했다. 여기서 핵심은 임의의 두 섬 a와 b에 대해, a번 섬에서 b번 섬으로 직접 이동할 수 있는 다리와 b번 섬에서 a번 섬으로 직접 이동하 룻 있으면, 두 섬은 연합을 결성하는 것이다. 그리고 주의해야할 점으로 a와 b가 연합을 결성하고 b와 c가 여합을 결성했다면 a와 c 역시 위 조건을 만족하지 않더라도 같은 연합에 속해있다고 보는 것이다. 따라서 예제 2번에서 1이 출력되는 것이다. static int count = 0; static boolean visited[]; static ArrayList[] graph; 먼저, static 필드로는 count..
풀이 과정 먼저 노드들의 연결 정보를 담기 위해서 ArrayList[] graph를 선언하였다. 그리고 노드 개수만큼 반복하여 해당 인덱스마다 해당 노드가 연결된 정보를 담을 수 있게 new ArrayList();를 통해 할당하였다. 그리고 visited를 통해서는 해당 노드를 방문했을 경우 다음 노드를 방문할 수 있는 용도로 정의하였다. 그 후에 간선의 개수만큼 순회하며 입력된 간선의 정보를 통해 양 노드가 서로 연결되어 있기 때문에 양 노드 모두 해당 인덱스에 대한 ArrayList에 추가하도록 작성했다. 문제 조건 중에 방문할 수 있으면서 번호가 가장 작은 노드로 이동하기 때문에 해당 노드에 연결된 노드들을 오름차순으로 정렬했다. DFS 방식을 사용하여 시작 노드로부터 연결된 노드들을 순회하면 위에..
- Total
- Today
- Yesterday
- 람다
- 분산 락
- 비관적 락
- annotation
- TDD
- 트랜잭션
- 구름톤챌린지
- spring webflux
- Synchronized
- socket
- transaction
- postgresql
- 자바 네티
- 네티 스레딩 모델
- redis session
- Kafka
- nginx
- 구름톤 챌린지
- 카프카
- sql
- mysql
- 스프링 네티
- nginx configuration
- 넥스트스탭
- mdcfilter
- spring session
- pessimistic lock
- Java
- jvm 메모리 구조
- NeXTSTEP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |