[C++] 1260 DFS와 BFS

2021. 3. 14. 17:45·Algorithm/Solution
728x90

1260번: DFS와 BFS (acmicpc.net)

 

1260번: DFS와 BFS

첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사

www.acmicpc.net


난이도 : 실버2

 

풀이과정 : 

DFS는 재귀함수를 이용해서 풀었습니다

[Algorithm] DFS 정리 (tistory.com)<< dfs 정리 참조

 

BFS는 큐를 이용해서 풀었습니다.

[Algorithm] BFS 정리 (tistory.com) << bfs 정리 참조

 

 

입력을 받을 때 (1,2)를 받았으면 1에다가 2를 추가하고 2의 노드에 1을 추가해야 합니다 (양쪽에 추가)

그리고 벡터 정렬 해줘야 합니다(for문을 이용하여 벡터를 정렬해주었습니다)

 

 

 

 

코드 :

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;

int n, m, v;
vector<int> adj[1005];
queue<int> q;
bool visited[1005];
bool visited1[1005];

void dfs(int now) {
	visited[now] = 1;
	printf("%d ", now);
	for (int i = 0; i < adj[now].size(); i++) {
		int next = adj[now][i];
		if (!visited[next]) dfs(next);
	}
	
}
void bfs(int st) {
	q.push(st);
	visited1[st] = 1;
	while (!q.empty()) {
		int now = q.front();
		q.pop();
		printf("%d ", now);
		for (int i = 0; i < adj[now].size(); i++) {
			int next = adj[now][i];
			if (!visited1[next]) {
				q.push(next);
				visited1[next] = 1;
			}	
		}
	}
}
int main() {
	scanf("%d %d %d", &n, &m, &v);
	
	for (int i = 0; i < m; i++) {
		int x, y;
		scanf("%d %d", &x, &y);
		adj[x].push_back(y);
		adj[y].push_back(x);
	}
	for (int j = 1; j <= n; j++) {
		sort(adj[j].begin(), adj[j].end());
	}

	dfs(v);
	printf("\n");
	bfs(v);
}

 

 

 

728x90
저작자표시 비영리 (새창열림)

'Algorithm > Solution' 카테고리의 다른 글

[C++] 백준 11724 연결 요소의 개수  (0) 2021.05.02
[C++] 백준 8958 OX퀴즈  (0) 2021.05.02
[C++] 2309 일곱 난쟁이  (0) 2021.02.26
[C++] 17478번 재귀함수가 뭔가요?  (0) 2021.01.18
[C++] 2960번 에라토스테네스의 체  (0) 2021.01.17
'Algorithm/Solution' 카테고리의 다른 글
  • [C++] 백준 11724 연결 요소의 개수
  • [C++] 백준 8958 OX퀴즈
  • [C++] 2309 일곱 난쟁이
  • [C++] 17478번 재귀함수가 뭔가요?
BeNI
BeNI
코딩하는 블로그
  • BeNI
    코딩못하는컴공
    BeNI
  • 전체
    오늘
    어제
    • Menu (253)
      • My profile (1)
      • 회고 | 후기 (8)
      • Frontend (65)
        • Article (11)
        • Study (35)
        • 프로그래머스 FE 데브코스 (19)
      • Backend (0)
      • Algorithm (58)
        • Solution (46)
        • Study (12)
      • Major (111)
        • C&C++ (23)
        • Java (20)
        • Data Structure (14)
        • Computer Network (12)
        • Database (15)
        • Linux (6)
        • Architecture (3)
        • Lisp (15)
        • OS (1)
        • Security (2)
      • etc (2)
  • 링크

    • 깃허브
    • 방명록
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    자료구조
    데브코스
    파일처리
    백준
    Algorithm
    react
    프로그래머스
    리팩토링
    lisp
    C++
  • hELLO· Designed By정상우.v4.10.2
BeNI
[C++] 1260 DFS와 BFS
상단으로

티스토리툴바