[BOJ]๋ฐฑ์ค€#5237 Silver 3 Connected or Not Connected ๐Ÿ”—๐Ÿ“Ž (Python, ํŒŒ์ด์ฌ)

์ž„์ค€์„ฑยท2022๋…„ 8์›” 7์ผ
0

๋ฐฑ์ค€ Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
43/59
post-thumbnail

๋ฐฑ์ค€ 5237๋ฒˆ
https://www.acmicpc.net/problem/5237

๋ฌธ์ œ



ํ›„๊ธฐ

โฐ ํ’€์ด์‹œ๊ฐ„ 20๋ถ„ ++โฐ

๋งžํžŒ ์‚ฌ๋žŒ์ด ๋งŽ์ง€ ์•Š์€ ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ํ’€์€ ์‚ฌ๋žŒ์ด ์ ์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์„œ

์ฐพ์€ ๋ฌธ์ œ์˜ 5๋ฒˆ์งธ๋‹ค. ๋ฌธ์ œ์˜ ๊ฒฐ๋ก ์„ ์ด์•ผ๊ธฐ ํ•˜์ž๋ฉด,

์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ, ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ์—ฐ๊ฒฐ์š”์†Œ๋“ค์ด
์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ทธ๋ž˜ํ”„๋ฉด Connected, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด Not connected๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ๋‹ค.

๋งค ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๋งˆ๋‹ค list๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ, ๊ทธ๋ž˜ํ”„์˜ ์ •์  ์ˆซ์ž๋ฅผ N์œผ๋กœ, ์—ฐ๊ฒฐ์š”์†Œ์˜ ์ˆซ์ž๋ฅผ K๋กœ

์„ ์–ธํ–ˆ๊ณ , ์—ฐ๊ฒฐ์š”์†Œ๋Š” list ์Šฌ๋ผ์ด์‹ฑ์œผ๋กœ ์ž…๋ ฅ์„ ์ •๋ฆฌํ–ˆ๋‹ค.

list๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๊ธธ์ด๊ฐ€ 2๊ฐ€ ๋์„๋•Œ [0,1][1,2] ๋“ฑ๋“ฑ..

ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ ์š”์†Œ๋“ค์„ ์—ฐ๊ฒฐ์š”์†Œ ์ฒ˜๋ฆฌํ•˜๋ฉฐ ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•˜์—ฌ ํ’€๊ฒŒ ๋˜์—ˆ๋‹ค.

๋‚˜์˜ ํ’€์ด

import sys
input= sys.stdin.readline
sys.setrecursionlimit(10**7)

def dfs(v):
    visited[v] = True
    for i in graph[v]:
        if not visited[i]:
            dfs(i)
            visited[i] = True

T = int(input())
for _ in range(T):
    li = list(map(int,input().split()))
    N = li[0] # ์ •์ ์ˆ˜
    K = li[1] # ์—ฐ๊ฒฐ์š”์†Œ์˜ ์ˆ˜
    li = li[2:] #์—ฐ๊ฒฐ์š”์†Œ ๋ฆฌ์ŠคํŠธ 

    graph = [[] for _ in range(N)]
    visited= [False] * (N)
    connect =[]
    for i in li: #list๋ฅผ ๋Œ๋ฉฐ
        connect.append(i) 
        if len(connect)==2: #list์˜ ๊ธธ์ด๊ฐ€ 2๊ฐ€ ๋˜๋ฉด ํ•ด๋‹น ์—ฐ๊ฒฐ์š”์†Œ๋ฅผ ๊ทธ๋ž˜ํ”„์— ์ถ”๊ฐ€ํ•œ๋‹ค. 
            graph[connect[0]].append(connect[1])
            graph[connect[1]].append(connect[0])
            connect = []
    
    dfs(0) #๋ชจ๋“  ์—ฐ๊ฒฐ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋์œผ๋ฉด dfs ์‹œ์ž‘

    if False in visited: #์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ์ •์ ์ด ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด
        print("Not connected.") #์—ฐ๊ฒฐ๋˜์ง€์•Š์Œ
    else: #๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜์–ด์žˆ์œผ๋ฉด
        print("Connected.") #์—ฐ๊ฒฐ๋จ ์ถœ๋ ฅ
profile
์•„๋ฌด๋ตํฌ ์žˆ์ด

0๊ฐœ์˜ ๋Œ“๊ธ€