๋ฐฑ์ค 5237๋ฒ
https://www.acmicpc.net/problem/5237
๋ฌธ์
ํ๊ธฐ
๋งํ ์ฌ๋์ด ๋ง์ง ์์ ๊ทธ๋ํ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ํ์ ์ฌ๋์ด ์ ์ ์์ผ๋ก ์ ๋ ฌํด์
์ฐพ์ ๋ฌธ์ ์ 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.") #์ฐ๊ฒฐ๋จ ์ถ๋ ฅ