[Python] 백준 14675 - 단절점과 단절선 문제 풀이

Boo Sung Jun·2022년 3월 3일
0

알고리즘, SQL

목록 보기
22/70
post-thumbnail

Overview

BOJ 14675번 단절점과 단절선 Python 문제 풀이
분류: tree (트리)


문제 페이지

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


풀이 코드

from sys import stdin
from collections import defaultdict


def is_cut_vertex(tree, vertex: int) -> None:
    if len(tree[vertex]) < 2:
        print('no')
    else:
        print('yes')


def is_bridge(tree, edge) -> None:
    print('yes')


def main():
    def input():
        return stdin.readline()

    tree = defaultdict(list)
    edges = [(0, 0)]

    N = int(input())
    for _ in range(N - 1):
        a, b = map(int, input().split())
        tree[a].append(b)
        tree[b].append(a)
        edges.append((a, b))

    q = int(input())
    for _ in range(q):
        t, k = map(int, input().split())
        if t == 1:
            is_cut_vertex(tree, k)
        else:
            is_bridge(tree, edges[k])


if __name__ == "__main__":
    main()

트리에서 단절점이 아닌 노드는 자식이 하나인 루트 노드와 리프 노드이다. 따라서 진출차수가 1개이면 단절점이 아니다.

트리는 사이클이 존재하지 않으므로 모든 간선이 단절선이다. 따라서 항상 yes를 출력한다.

0개의 댓글

관련 채용 정보