1 분 소요

1. 문제

https://www.acmicpc.net/problem/9372

  • 최소 신장 트리 문제
// 문제
상근이는 겨울방학을 맞아 N개국을 여행하면서 자아를 찾기로 마음먹었다.

하지만 상근이는 새로운 비행기를 무서워하기 때문에,
최대한 적은 종류의 비행기를 타고 국가들을 이동하려고 한다.

이번 방학 동안의 비행 스케줄이 주어졌을 ,
상근이가 가장 적은 종류의 비행기를 타고 모든 국가들을 여행할  있도록 도와주자.

상근이가  국가에서 다른 국가로 이동할 
다른 국가를 거쳐 가도(심지어 이미 방문한 국가라도) 된다.

// 입력
 번째 줄에는 테스트 케이스의  T(T  100) 주어지고,
 테스트 케이스마다 다음과 같은 정보가 주어진다.
 번째 줄에는 국가의  N(2  N  1 000)
비행기의 종류 M(1  M  10 000)  주어진다.
이후 M개의 줄에 a와 b 쌍들이 입력된다.
a와 b를 왕복하는 비행기가 있다는 것을 의미한다. (1  a, b  n; a  b)
주어지는 비행 스케줄은 항상 연결 그래프를 이룬다.

// 출력
테스트 케이스마다  줄을 출력한다.
상근이가 모든 국가를 여행하기 위해 타야 하는 비행기 종류의 최소 개수를 출력한다.

// 예제 입력 1
2
3 3
1 2
2 3
1 3
5 4
2 1
2 3
4 3
4 5

// 예제 출력 1
2
4


2. 핵심 아이디어

  • 모든 국가가 연결되어 있기 때문에 n-1 출력


3. Python 문제풀이

import sys
input = sys.stdin.readline

for _ in range(int(input())) :
  n, m = map(int, input().split())
  for _ in range(m) :
    u, v = map(int, input().split())
  print(n-1)


4. Java 문제풀이


댓글남기기