첫번째 코드
먼저 이번에는 DFS는 꼭 답안을 참고할일을 없애보자...! 라는 목표!
BFS는 처음 접하는거니까 기억하면서 풀어보자!
였는데 그래도 DFS는 차근차근 다른 문제 참고하면서 작성한 것 같다! 그리고 느껴지는 건 BFS가 좀 더 코드는 쉬운 느낌이다! (앞으로 혼자 뚝딱할 정도라고는 안했다 ㅎㅎㅎ;;)
import sys
from collections import deque
input = sys.stdin.readline
sys.setrecursionlimit(10000)
n, m, v = map(int, input().split())
A = [[] for _ in range(n+1)]
visited = [False] * (n+1)
def DFS(x):
print(x, end = ' ')
visited[x] = True
for i in A[x]:
if not visited[i]:
DFS(i)
for _ in range(m):
e, s = map(int, input().split())
A[e].append(s)
A[s].append(e)
for i in range(n+1):
A[i].sort()
DFS(v)
def BFS(x):
queue = deque()
queue.append(x)
visited[x] = True
while queue:
now = queue.popleft()
print(now, end = ' ')
for i in A[now]:
if not visited[i]:
visited[i] = True
queue.append(i)
print()
visited = [False] * (n+1)
BFS(v)
통과!
다음에도 연습해보자 진짜 꼭 이건 진짜 무조건 해야한다 ㅠㅠㅜㅜ 무조건 대놓고 저 나올꺼예요~ 하는 문제다 진짜루ㅠㅠㅠ
링크
programmers/백준/Silver/1260. DFS와 BFS at main · ornni/programmers
repository for recording Programmers Algorithm problem solving - ornni/programmers
github.com
'코딩 테스트 > do it! 알고리즘 코딩테스트' 카테고리의 다른 글
028 트리의 지름 (0) | 2024.05.16 |
---|---|
025 ABCDE (0) | 2024.05.14 |
024 신기한 소수 (0) | 2024.05.09 |
023 연결 요소의 개수 (0) | 2024.05.09 |
022 수 정렬하기 3 (0) | 2024.05.07 |