문제 보기
https://www.acmicpc.net/problem/2644
풀이
어제 풀었던 문제와 거의 동일한 흐름이라 바로 풀어버렸다.
https://mountain-noroo.tistory.com/226
접근 방식은 동일하나 노드 사이에 거리가 주어지지 않으니
새 노드를 탐색할 때 무조건 1만 더하면 된다는 차이가 있다.
덕문에 8분 만에 문제를 풀었다.
코드도 어제 코드를 그대로 활용하였다.
전체 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
String[] inputs = br.readLine().split(" ");
int start = Integer.parseInt(inputs[0]);
int end = Integer.parseInt(inputs[1]);
int M = Integer.parseInt(br.readLine());
List<Integer>[] list = new ArrayList[N+1];
for(int i = 1; i <= N; i++){
list[i] = new ArrayList<>();
}
for (int i = 0; i < M; i++) {
inputs = br.readLine().split(" ");
list[Integer.parseInt(inputs[0])].add(Integer.parseInt(inputs[1]));
list[Integer.parseInt(inputs[1])].add(Integer.parseInt(inputs[0]));
}
boolean[] visited = new boolean[N + 1];
visited[start] = true;
Queue<int[]> queue = new LinkedList<>();
for(int j = 0; j < list[start].size(); j++) {
queue.add(new int[]{list[start].get(j), 1});
}
while (!queue.isEmpty()) {
int[] node = queue.poll();
if(node[0] == end) {
bw.write(node[1] + "\n");
bw.flush();
bw.close();
return;
}
for(int j = 0; j < list[node[0]].size(); j++) {
if(!visited[list[node[0]].get(j)]) {
visited[list[node[0]].get(j)] = true;
queue.add(new int[]{list[node[0]].get(j), node[1] + 1});
}
}
}
bw.write("-1\n");
bw.flush();
bw.close();
}
}
GitHub 링크
'ProblemSolve > 항해99 코테스터디' 카테고리의 다른 글
99클럽 코테 스터디 10일차 TIL (미들러): [백준][Java] 18352 특정 거리의 도시 찾기 - 실버2 (0) | 2024.11.06 |
---|---|
99클럽 코테 스터디 9일차 TIL (챌린저): [프로그래머스][Java] 다단계 칫솔 판매 - level3 (2) | 2024.11.05 |
99클럽 코테 스터디 7일차 TIL (챌린저): [백준][Java] 1240 노드사이의 거리 - 골드5 (0) | 2024.11.03 |
99클럽 코테 스터디 7일차 TIL (미들러): [프로그래머스][Java] 모음사전 - level2 (0) | 2024.11.03 |
99클럽 코테 스터디 6일차 TIL (챌린저): [백준][Java] 2458 키 순서 - 골드4 (0) | 2024.11.02 |