티스토리 뷰
728x90
반응형
문제 요약
- 알고리즘 분류: BFS, DFS
- 난이도: Silver2
- 문제
- 내용:
- 사이트: https://www.acmicpc.net/problem/2644
문제풀이
Code
Python
Java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Map<Integer, List<Integer>> adj = new HashMap<>();
int N = Integer.parseInt(br.readLine());
for (int i = 1; i <= N; i++) {
adj.put(i, new ArrayList<>());
}
StringTokenizer st = new StringTokenizer(br.readLine());
int from = Integer.parseInt(st.nextToken());
int to = Integer.parseInt(st.nextToken());
int count = Integer.parseInt(br.readLine());
for (int i = 0; i < count; i++) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
adj.get(a).add(b);
adj.get(b).add(a);
}
int[] visited = new int[N + 1];
Arrays.fill(visited, -1);
Stack<Integer> stack = new Stack<>();
stack.add(from);
visited[from] = 0;
while (!stack.empty()){
int now = stack.pop();
for(Integer node : adj.get(now)){
if(visited[node] == -1){
visited[node] = visited[now] + 1;
stack.add(node);
}
}
}
System.out.println(visited[to]);
}
}
728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Python
- 조합
- 동적 계획법
- Greedy
- 백준
- Programmerse
- DP
- 수학
- BaekJoon
- 동적계획법
- 넓이 우선 탐색
- 구현
- 백트레킹
- 재귀호출
- 알고리즘
- LeetCode
- 배열
- BFS
- 파이썬
- 그래프
- 누적합
- spring-boot
- 그리디
- 이론
- 자바
- JSCODE
- 문자열
- level2
- DFS
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
글 보관함