[백준/C++] 1260번: 수열

Eunho Bae·2022년 4월 30일
0

백준

목록 보기
27/40

문제 링크


설명

자료구조 시간에 배운대로 구현을 하면 된다.


코드

#include <iostream>
#include <queue>
using namespace std;

int graph[1001][1001];
int n, m, start, x, y;
bool visited[1001] = {false};

void DFS(int s)
{
	visited[s] = true;
	cout << s << ' ';
	
	for (int i = 1; i <= 1000; i++)
		if(visited[i] == false && graph[s][i] == 1)
			DFS(i);
}

void BFS(int s)
{
	bool visited[1001] = {false};
	
	queue<int> q;
	q.push(s);
	visited[s] = true;

	while (!q.empty())
	{
		int v = q.front();
		q.pop();
		cout << v << ' ';

		for (int i = 1; i <= 1000; i++)
			if (graph[v][i] == 1 && visited[i] == false)
			{
				visited[i] = true;
				q.push(i);
			}
	}
}

int main()
{
	ios::sync_with_stdio(0);
	cout.tie(0);
	cin.tie(0);

	cin >> n >> m >> start;

	for (int i = 0; i < m; i++)
	{
		cin >> x >> y;
		graph[x][y] = 1;
		graph[y][x] = 1;
	}

	DFS(start);
	cout << endl;
	BFS(start);

	return 0;
}
profile
개인 공부 정리

0개의 댓글