
κ·Έλ¦Όμ μΆμ²λ μλ λΈλ‘κ·Έ κΈμ λλ€. λ§μ λμμ λ°μμ΅λλ€.
[λ°±μ€] 2606 λ°μ΄λ¬μ€ - Python (κ·Έλν νμ)

μ¬λ¬ λ² λ€μν μ’μ κΈλ€μ κΈμ μ½κ³ λ ꡬνμ λͺ»νλ€κ° μ΄μ μ¬μ΄ λ¬Έμ λ₯Ό κ²¨μ° κ΅¬ννμ΅λλ€.
μ΄κΉ¨ λλ¨Έλ‘ κ΅¬ννμλ κ²μ λ§μ΄ λ³΄κ³ μ΄μΌκΈ°λ₯Ό μ£Όμ λ£λ€ 보λ-
κ·Έλνμ νΈλ¦¬ λ¬Έμ ꡬν μ°μ΅μ λ§μ΄ ν΄ λ³΄λ €κ΅¬μ.
μ νμ΄μ§μ μμλ κΉμ΄μ°μ κ³Ό λλΉμ°μ λͺ¨λλ‘ κ΅¬ννμ΅λλ€.
μ΄λ λΈλ‘κ·Έ κΈμ μ½κ³ νΌμ μ½λλ₯Ό ꡬνν΄ λ³΄κ³ λΉκ΅νλ©΄μ μμ νμ΄μ.
λ¨Όμ DFSμ λλ€.
import sys
def dfs(v):
visited[v]=1
for nx in graph[v]:
if visited[nx]==0:
dfs(nx)
raw=list(map(str.rstrip,sys.stdin.readlines()))
n = int(raw[0]) #computers
v = int(raw[1]) #connections
graph = [[] for _ in range(n+1)]
visited = [0]*(n+1)
for line in raw[2:]:
a,b = map(int,line.split())
graph[a].append(b)
graph[b].append(a)
dfs(1)
print(sum(visited)-1)
κ·Έλ¦¬κ³ BFSμ λλ€. 2μ°¨μ ν λ§ν λλ³΄λ€ κ΅¬νμ΄ μ΄λ ΅κ² λκ»΄μ‘μ΄μ.
import sys
from collections import deque
def bfs(v):
visited[v]=1
queue = deque([1])
while queue:
curr=queue.popleft()
for nx in graph[curr]:
if visited[nx]==0:
queue.append(nx)
visited[nx]=1
raw=list(map(str.rstrip,sys.stdin.readlines()))
n = int(raw[0]) #computers
v = int(raw[1]) #connections
graph = [[] for _ in range(n+1)]
visited = [0]*(n+1)
for line in raw[2:]:
a,b = map(int,line.split())
graph[a].append(b)
graph[b].append(a)
bfs(1)
print(sum(visited)-1)
λΉμ·ν λ¬Έμ λΌκ³ λκ»΄μ μ΄λ° λ¬Έμ λ νμμ΄μ.
defaultdict(bool) μ΄λΌλ μ μ©ν λꡬλ μκ² λμμ΄μ!

from sys import stdin
from collections import defaultdict
raw = [tuple(x.split()) for x in list(map(str.rstrip, stdin.readlines()[1:]))]
dance = defaultdict(bool)
dance['ChongChong'] = True
answer = 1
while raw: #μ΄μ΄μ΄ λ±μ₯ μ κΉμ§λ λ λ €μ€λλ€.
a,b = raw[0]
if a=='ChongChong' or b=='ChongChong':
break
else:
raw.pop(0)
for a,b in raw:#λ±μ₯ ν λ°μ΄ν° κΈ°λ°μΌλ‘ νμν©λλ€.
if dance[a]:
if not dance[b]:
dance[b] = True
answer += 1
elif dance[b]:
dance[a] = True
answer += 1
print(answer)
κ·Έλ°λ° μ΄ λ¬Έμ λ νΈλ¦¬λΌκ³ ν©λλ€.
κ·Έλμ κ·Έλνμ νΈλ¦¬μ μ°¨μ΄μ μ μμλ΄€μ΅λλ€.(λ€μλλ° μ κΈ°μ΅μ΄ μ λμβ¦.)