알고리즘/BOJ

백준 9372번 상근이의 여행

꾸준함. 2018. 7. 20. 19:30

문제 링크입니다: https://www.acmicpc.net/problem/9372


처음에는 BFS(Breadth First Search) 알고리즘을 적용하려고 했지만 그럴 필요가 없다는 것을 깨달았습니다.

최소 스패닝 트리(Minimum Spanning Tree)는 N-1개의 간선으로 이루어져있기 때문에 결국 N-1 개의 간선 즉, N-1 종류의 비행기를 타야지 모든 도시를 방문할 수 있다는 것을 알 수 있습니다.


#include <iostream>

#include <vector>

#include <queue>

using namespace std;

 

const int MAX = 1000 + 1;

 

int N, M;

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0); //cin 실행속도 향상

        int T;

        cin >> T;

 

        while (T--)

        {

                 cin >> N >> M;

 

                 for (int i = 0; i < M; i++)

                 {

                         int node1, node2;

                         cin >> node1 >> node2;

                 }

                 //MST N-1개의 간선으로 이루어져있다

                 cout << N - 1 << "\n";

        }

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 1126번 같은 탑  (0) 2018.07.20
백준 2229번 조 짜기  (0) 2018.07.20
백준 2250번 트리의 높이와 너비  (7) 2018.07.19
백준 3653번 영화 수집  (0) 2018.07.19
백준 1600번 말이 되고픈 원숭이  (5) 2018.07.18