😎 κ³΅λΆ€ν•˜λŠ” μ§•μ§•μ•ŒνŒŒμΉ΄λŠ” μ²˜μŒμ΄μ§€?

[BAEKJOON python] 2606_λ°”μ΄λŸ¬μŠ€ λ³Έλ¬Έ

πŸ¦₯ μ½”ν…Œ/BAEKJOON

[BAEKJOON python] 2606_λ°”μ΄λŸ¬μŠ€

μ§•μ§•μ•ŒνŒŒμΉ΄ 2022. 10. 6. 17:00
728x90
λ°˜μ‘ν˜•
μ‹ μ’… λ°”μ΄λŸ¬μŠ€μΈ μ›œ λ°”μ΄λŸ¬μŠ€λŠ” λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ „νŒŒλœλ‹€. ν•œ 컴퓨터가 μ›œ λ°”μ΄λŸ¬μŠ€μ— 걸리면 κ·Έ 컴퓨터와 λ„€νŠΈμ›Œν¬ μƒμ—μ„œ μ—°κ²°λ˜μ–΄ μžˆλŠ” λͺ¨λ“  μ»΄ν“¨ν„°λŠ” μ›œ λ°”μ΄λŸ¬μŠ€μ— 걸리게 λœλ‹€.
1번 μ»΄ν“¨ν„°κ°€ μ›œ λ°”μ΄λŸ¬μŠ€μ— κ±Έλ Έλ‹€.
μ»΄ν“¨ν„°μ˜ μˆ˜μ™€ λ„€νŠΈμ›Œν¬ μƒμ—μ„œ μ„œλ‘œ μ—°κ²°λ˜μ–΄ μžˆλŠ” 정보가 μ£Όμ–΄μ§ˆ λ•Œ, 1번 μ»΄ν“¨ν„°λ₯Ό 톡해 μ›œ λ°”μ΄λŸ¬μŠ€μ— 걸리게 λ˜λŠ” μ»΄ν“¨ν„°μ˜ 수λ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±
첫째 μ€„μ—λŠ” μ»΄ν“¨ν„°μ˜ μˆ˜κ°€ 주어진닀. μ»΄ν“¨ν„°μ˜ μˆ˜λŠ” 100 μ΄ν•˜μ΄κ³  각 μ»΄ν“¨ν„°μ—λŠ” 1번 λΆ€ν„° μ°¨λ‘€λŒ€λ‘œ λ²ˆν˜Έκ°€ 맀겨진닀.
λ‘˜μ§Έ μ€„μ—λŠ” λ„€νŠΈμ›Œν¬ μƒμ—μ„œ 직접 μ—°κ²°λ˜μ–΄ μžˆλŠ” 컴퓨터 쌍의 μˆ˜κ°€ 주어진닀. μ΄μ–΄μ„œ κ·Έ 수만큼 ν•œ 쀄에 ν•œ μŒμ”© λ„€νŠΈμ›Œν¬ μƒμ—μ„œ 직접 μ—°κ²°λ˜μ–΄ μžˆλŠ” μ»΄ν“¨ν„°μ˜ 번호 쌍이 주어진닀.
1번 μ»΄ν“¨ν„°κ°€ μ›œ λ°”μ΄λŸ¬μŠ€μ— 걸렸을 λ•Œ, 1번 μ»΄ν“¨ν„°λ₯Ό 톡해 μ›œ λ°”μ΄λŸ¬μŠ€μ— 걸리게 λ˜λŠ” μ»΄ν“¨ν„°μ˜ 수λ₯Ό 첫째 쀄에 좜λ ₯ν•œλ‹€.
from collections import deque

n = int(input())
m = int(input())
graph = [[] for i in range(n+1)]
visited = [False] * (n+1)
cnt = 0


for i in range(m) :
    s, e = map(int, input().split())
    graph[s].append(e)
    graph[e].append(s)

def bfs(graph, v) :
    global cnt
    queue = deque([v])

    while queue :
        pop = queue.popleft()
        visited[pop] = True
        
        for i in graph[pop] :
            if visited[i] == False :
                visited[i] = True
                queue.append(i)
                cnt += 1

    print(cnt)

bfs(graph, 1)


# input
# 7
# 6
# 1 2
# 2 3
# 1 5
# 5 2
# 5 6
# 4 7

# output
# 4
728x90
λ°˜μ‘ν˜•
Comments