백준 1260 DFS와 BFS C++
- C
- 2023. 4. 6.
백준 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 |