[백준 1260] DFS와 BFS (실버 3) 문제 풀이- 파이썬 python
2022. 12. 29. 19:15ㆍ네카라쿠배 취준반 - 프로그래머스 문제 풀이
0. 자세한 설명은 YouTube 영상으로
- 개발자로 취직하기의 DFS 강의 : https://inf.run/MqJT
1. 풀이 코드
import sys
def dfs(idx) :
global visited
visited[idx] = True
print(idx, end = ' ')
for next in range(1, N+1) :
if not visited[next] and graph[idx][next]:
dfs(next)
def bfs():
global q, visited
while q:
cur = q.pop(0)
visited[cur] = True
print(cur, end = ' ')
for next in range(1, N + 1) :
if not visited[next] and graph[cur][next]:
visited[next] = True
q.append(next)
# 0. 입력 및 초기화
input = sys.stdin.readline
N, M, V = map(int, input().split())
graph = [[False] * (N + 1) for _ in range(N + 1)]
visited = [False] * (N + 1)
# 1. graph 정보 입력
for _ in range(M) :
a, b = map(int, input().split())
graph[a][b] = True
graph[b][a] = True
# 2. dfs
dfs(V)
print()
# 3. bfs
visited = [False] * (N + 1)
q = [V]
bfs()
'네카라쿠배 취준반 - 프로그래머스 문제 풀이' 카테고리의 다른 글
[백준 2606] 바이러스 (실버 3) 문제 풀이- 자바 Java (0) | 2022.12.31 |
---|---|
[백준 1260] DFS와 BFS (실버 3) 문제 풀이- 자바 Java (1) | 2022.12.31 |
[백준 2449] 전구 문제 풀이- 자바 Java (0) | 2022.12.24 |
[백준 10870] 피보나치 수 5 문제 풀이- 파이썬 python (0) | 2022.12.22 |
[프로그래머스] 숫자 카드 나누기 문제 풀이(코딩테스트 입문 Lv. 2) - 자바 Java (0) | 2022.12.17 |