BFS 2

[Java] 백준 1976번 : 여행 가자(BFS, 유니온 파인드 풀이)

문제소개 BFS 풀이 첫 번째 풀이로 BFS를 떠올렸다. 1 -> 2 -> 3 과 같은 경로를 거칠 수 있는지 판단해야하므로 하나의 경로를 나아갈 때 마다 BFS를 통해 도달할 수 있는지 없는지 검사한다. 경로의 수가 많다면 시간초과가 발생할 수 있지만, 주어진 조건으로는 200 * 200 * 1000, 즉 4천만정도여서 시도해봤다. 문제설명이 조금 부실해 여행 경로에 연속된 숫자가 나올 수 있다는 점을 늦게알았지만 해당 조건을 추가해주니 AC를 받았다. public class Main { static int[][] graph; static boolean[] visited; static String result = "YES"; static int[] schedule; static int N, M; pub..

[Java] 백준 14891번 : 톱니바퀴

- 문제설명 n번 톱니바퀴를 임의의 방향으로 회전 시킬 때, 주변 톱니바퀴와 닿아있는 부분의 극이 다르다면 반대방향으로 회전시켜야 하는 문제. 다만 n번 톱니바퀴를 회전시킨 결과에서 닿아있는 부분과 극이 다르다는 것을 판단하는게 아니다. 최초 n번 톱니바퀴의 회전을 시작하기 전, 미리 3개의 접점에서 극이 다른지 기억해놔야 한다. 이후 어떤 톱니바퀴를 돌리더라도 초기에 기억해놓은 정보를 바탕으로 연쇄적인 회전을 발생시킬 지 말지 결정하는 문제이다. - 해결과정 - 솔루션 import java.io.*; import java.util.*; public class Main { private static List[] node = new ArrayList[5]; private static boolean[] ed..