Python/백준

9372_상근이의 여행

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