일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 프론트엔드
- react
- 쿠버네티스
- 알고리즘
- AWS
- 웹
- CSS
- docker
- 블록체인
- 타입스크립트
- 가상화
- 클라우드
- 백준
- HTML
- 자바스크립트
- k8s
- kubernetes
- node.js
- es6
- TypeScript
- 백엔드
- 이더리움
- 이슈
- next.js
- 파이썬
- JavaScript
- 컴퓨터공학
- BFS
- 리액트
- 솔리디티
Archives
- Today
- Total
즐겁게, 코드
BOJ 1325번 - 효율적인 해킹 본문
우선 이 문제는 테스트케이스 범위로 인해 DFS로 풀면 시간 초과가 납니다.
(※ 시간이 아니더라도, 파이썬의 최대 재귀 제한에 걸릴 예정입니다.)
[정답 코드 - Python]
from collections import deque
N, M = map(int, input().split())
trust = [[] for _ in range(N + 1)]
count = [0] * (N + 1)
def BFS(node):
q = deque()
q.append(node)
infected = [False] * (N + 1)
infected[node] = True
while q:
node = q.popleft()
for nextNode in trust[node]:
if infected[nextNode] == True:
continue
else:
q.append(nextNode)
infected[nextNode] = True
return infected.count(True)
for i in range(M):
dist, src = map(int, input().split())
trust[src].append(dist)
for node in range(1, N + 1):
count[node] = BFS(node)
for i in range(len(count)):
if count[i] == max(count):
print(i, end=" ")
반응형
'💯 알고리즘 > 백준 온라인 저지' 카테고리의 다른 글
백준 4963번 : 섬의 개수 (0) | 2021.05.30 |
---|---|
BOJ 17086번 - 아기 상어 2 (0) | 2021.05.28 |
BOJ 2583번 - 영역 구하기 (0) | 2021.04.29 |
BOJ 2606번 - 바이러스 (0) | 2021.04.27 |
BOJ 1051번 - 숫자 정사각형 (0) | 2021.04.24 |
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆