게으른카르

백준 1260 DFS와 BFS C++

C
2023. 4. 6. 21:30

백준 1260 DFS와 BFS.

백준 1260번 "DFS와 BFS" 문제의 자세한 내용은 글 하단의 문제 링크를 참고하세요.

1260번 문제에 주어지는 입력 및 예시

입력: 

4 5 1
1 2
1 3
1 4
2 4
3 4

출력:

1 2 4 3
1 2 3 4

코드

백준 1260번 "DFS와 BFS" 문제의 코드입니다.

#include <bits/stdc++.h>
using namespace std;
vector<int> vec[1001];
bool visited[1001]; 
void dfs(int tmp){
	visited[tmp]=true;
	cout<<tmp<<" ";
	for(int i=0;i<vec[tmp].size();i++){
		int next=vec[tmp][i];
		if(!visited[next])//true가 아닌경우 가지않은경우. 
			dfs(next);
	}
}
void bfs(int tmp){
	queue<int> q;
	visited[tmp]=true;
	q.push(tmp);
	while(!q.empty()){
		int cur=q.front();q.pop();
		cout<<cur<<" ";
		for(int i=0;i<vec[cur].size();i++){
			int next=vec[cur][i];
			if(!visited[next]){
				visited[next]=true;
				q.push(next);
			}
		}
	}
}
int main() {
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	int n,m,v; 
	cin >>n>>m>>v;
	for(int i=0;i<m;i++){
		int a,b;
		cin>>a>>b;
		vec[a].push_back(b);
		vec[b].push_back(a);
	}
	for(int i=0;i<n;i++)
		sort(vec[i+1].begin(),vec[i+1].end());
	dfs(v);
	cout<<"\n";
	memset(visited,0,sizeof(visited));
	bfs(v);
	return 0;
}

실행

위의 코드를 예제의 입력을 넣어 실행했을 때의 결과입니다.

반응형

'C' 카테고리의 다른 글

백준 1181 단어 정렬 C++  (0) 2023.04.07
백준 1920 수 찾기 C++  (0) 2023.04.07
백준 1874 스택 수열 C++  (0) 2023.04.06
백준 18111 마인크래프트 C++  (0) 2023.04.06
백준 1012 유기농 배추 C++  (0) 2023.04.06

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band