코드
from collections import deque
n = int(input())
m = int(input())
friend = [[] for _ in range(n+1)]
for _ in range(m):
x,y = map(int, input().split())
friend[x].append(y)
friend[y].append(x)
def bfs(x, graph):
check = [0]*(n+1)
queue = deque()
queue.append(x)
check[x] = 1 # 깊이를 체크해줄 것
cnt = 0
while queue:
popnum = queue.popleft()
if check[popnum] >= 3: break # 깊이가 3 이상이면 반복문 종료. 함수를 종료하는 것 X
for i in graph[popnum]:
if not check[i]:
check[i] = check[popnum] + 1 # 깊이 기록
cnt += 1 # 개수 증가
queue.append(i)
return cnt
print(bfs(1, friend))
접근은 좋았는데 왜인지 매우 헤맸던 문제. 깊이를 체크하는 것에서 하나씩 꼬여서 애를 먹었다.
'백준' 카테고리의 다른 글
[백준] 7576번 토마토 파이썬 코드 (0) | 2023.11.21 |
---|---|
[백준] 13458번 시험 감독 파이썬 코드 (1) | 2023.11.21 |
[백준] 1389번 케빈 베이컨의 6단계 법칙 파이썬 코드 (1) | 2023.11.20 |
[백준] 11727번 2 x n 타일링 2 파이썬 코드 (1) | 2023.11.18 |
[백준] 1793번 타일링 파이썬 코드 (0) | 2023.11.18 |
코드
from collections import deque
n = int(input())
m = int(input())
friend = [[] for _ in range(n+1)]
for _ in range(m):
x,y = map(int, input().split())
friend[x].append(y)
friend[y].append(x)
def bfs(x, graph):
check = [0]*(n+1)
queue = deque()
queue.append(x)
check[x] = 1 # 깊이를 체크해줄 것
cnt = 0
while queue:
popnum = queue.popleft()
if check[popnum] >= 3: break # 깊이가 3 이상이면 반복문 종료. 함수를 종료하는 것 X
for i in graph[popnum]:
if not check[i]:
check[i] = check[popnum] + 1 # 깊이 기록
cnt += 1 # 개수 증가
queue.append(i)
return cnt
print(bfs(1, friend))
접근은 좋았는데 왜인지 매우 헤맸던 문제. 깊이를 체크하는 것에서 하나씩 꼬여서 애를 먹었다.
'백준' 카테고리의 다른 글
[백준] 7576번 토마토 파이썬 코드 (0) | 2023.11.21 |
---|---|
[백준] 13458번 시험 감독 파이썬 코드 (1) | 2023.11.21 |
[백준] 1389번 케빈 베이컨의 6단계 법칙 파이썬 코드 (1) | 2023.11.20 |
[백준] 11727번 2 x n 타일링 2 파이썬 코드 (1) | 2023.11.18 |
[백준] 1793번 타일링 파이썬 코드 (0) | 2023.11.18 |