일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- spotify
- Baekjoon
- 파이썬
- Spotify Api
- MYSQL
- SECS-II
- python
- SW Expert Academy
- Gem
- SWEA
- SECS/GEM
- 자바
- programmers
- SECS
- CS
- 백준
- java
- Computer Science
- spring boot
- regression
- modern c++
- linux
- C++
- 회귀
- Spring
- c
- Spring JPA
- 스포티파이
- 회원가입
- 프로그래머스
Archives
- Today
- Total
비버놀로지
[BAEKJOON 백준] 1260 DFS와 BFS 본문
728x90
첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다.
위와 같이 입력과 간선을 통해서 배열을 만든다.
이 문제는 BFS와 DFS를 이용해서 답을 내야한다.
먼저 BFS는 LinkedList를 통해서 점을 찾아가는 방식으로 답을 만들었다.
그리고, DFS는 boolean을 이용해서 출력을 해주는 방식으로 문제를 풀었다.
import java.util.LinkedList;
import java.util.Scanner;
public class Main {
static int N,arr[][];
static boolean isSelected[];
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
N=sc.nextInt();
arr=new int[N+1][N+1];
isSelected=new boolean[N+1];
int M=sc.nextInt();
int start=sc.nextInt();
LinkedList <Integer> que=new LinkedList<>();
boolean visit[]=new boolean[N+1];
for(int i=0;i<M;i++) {
int f=sc.nextInt();
int t=sc.nextInt();
arr[f][t]=arr[t][f]=1;
}
DFS(start);
System.out.println();
que.offer(start);
visit[start]=true;
while(!que.isEmpty()) {
int temp=que.poll();
for(int i=1;i<=N;i++) {
if(arr[temp][i]==1&&!visit[i]) {
que.offer(i);
visit[i]=true;
}
}
System.out.print(temp+" ");
}
}
private static void DFS(int start) {
isSelected[start]=true;
System.out.print(start+" ");
for(int i=1;i<=N;i++) {
if(arr[start][i]==1&&!isSelected[i]) {
DFS(i);
}
}
}
}
728x90
'ALGORITM > JAVA' 카테고리의 다른 글
[BAEKJOON 백준] 1330 두 수 비교하기 (0) | 2021.01.10 |
---|---|
[BAEKJOON 백준] 1271 엄청난 부자2 (0) | 2021.01.10 |
[BAEKJOON 백준] 1244 스위치 켜고 끄기 (0) | 2021.01.10 |
[BAEKJOON 백준] 1236 성 지키기 (0) | 2021.01.10 |
[BAEKJOON 백준] 1212 8진수 2진수 (0) | 2021.01.10 |
Comments