https://www.acmicpc.net/problem/1325
1. 난이도 실버1
2. 내가 작성한 코드
from collections import deque
import sys
input = sys.stdin.readline
n, m = map(int, input().rstrip().split()) #n=컴퓨터개수 m=신뢰관계
maps = [[] for _ in range(n+1)]
answer = []
for _ in range(m):
a, b = map(int, input().rstrip().split())
maps[b].append(a)
def bfs(cnt, x):
queue = deque()
queue.append(x)
visit[x] = 0
while queue:
popX = queue.popleft()
for i in maps[popX]:
if visit[i] == -1:
cnt+=1
visit[i] = 0
queue.append(i)
return cnt
for i in range(1,n+1):
visit = [-1] * (n + 1)
cnt = 0
answer.append(bfs(cnt, i))
max_num = max(answer)
for i in range(n):
if answer[i] == max_num:
print(i+1,end=" ")
각 정점을 start로 두고 bfs를 돌려줘야 하기 때문에 매 번 visit를 초기화한다.
(B를 해킹할 경우 A를 해킹할 수 있으니 maps[b].append(a)로 인접리스트 만들어줘야 함!!!!)
'🔅코딩테스트 공부🔅 > ❗백준' 카테고리의 다른 글
[백준] 11265번 끝나지 않는 파티(python) (0) | 2023.03.29 |
---|---|
[백준] 1707번 이분 그래프(python) (0) | 2023.03.20 |
[백준] 18352번 특정 거리의 도시 찾기(python) (0) | 2023.03.20 |
[백준] 1377번 버블 소트(python) (1) | 2023.03.08 |
[백준] 17298번 오큰수(python) (0) | 2023.03.07 |
댓글