728x90
https://www.acmicpc.net/problem/9372
9372번: 상근이의 여행
첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가
www.acmicpc.net
트리 구조를 하나 만들고 그래프를 순회하면서 트리를 도록 순서를 짰다
t = int(input())
for _ in range(t):
n,m = map(int,input().split())
graph = [ [] for __ in range(n+1) ]
for __ in range(m):
a,b = map(int,input().split())
graph[a].append(b)
graph[b].append(a)
tree = [0] * (n+1)
cnt=0
tree[1]=1
for i in range(1,n+1):
for j in graph[i]:
if not tree[j]:
tree[j] =1
cnt +=1
print(cnt)
그런데 가만 생각해보니 해당 문제는 결국 비행기의 종류를 찾는건데, 노드가 n개라면 n개의 노드를 만드는 트리구조의 간선은 무조건 n-1개라는생각이 들어서 그냥 n-1을 출력하게 해 보았다.
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
n,m = map(int,input().split())
for __ in range(m):
input()
print(n-1)
이렇게 해도 잘 통과된다 ㅋㅋ..
728x90
'Python > 백준' 카테고리의 다른 글
4386_별자리만들기 (0) | 2022.05.12 |
---|---|
1197_최소스패닝트리 (0) | 2022.05.11 |
4195_친구네트워크 ...반례? (0) | 2022.05.08 |
1976_여행가자 (0) | 2022.05.08 |
1717_집합의 표현 (0) | 2022.05.08 |