본문 바로가기
코딩테스트

백준 1260 : DFS와 BFS

by DSLAB_JS 2021. 10. 17.

DFS와 BFS에 대해 기본적으로 공부를 한 후, 기본 문제들을 풀어보려고 한다.

백준 1260번 문제이다.

백준 1260번 문제

제출 코드

 

N,M,V=map(int,input().split()) #입력받아야할 변수 설정
matrix=[[0]*(N+1) for i in range(N+1)] #초기 matrix 0으로 선언


for i in range(M):
    a,b = map(int,input().split())
    matrix[a][b]=matrix[b][a]=1
visit_list=[0]*(N+1)

def dfs(V):
    visit_list[V]=1 #방문한 지점은 1로 표시
    print(V, end=' ')
    for i in range(1,N+1):
        if(visit_list[i]==0 and matrix[V][i]==1):
            dfs(i)

def bfs(V):
    queue=[V] #들려야 할 정점 저장
    visit_list[V]=0 #방문한 지점 0으로 표시
    while queue:
        V=queue.pop(0)
        print(V, end=' ')
        for i in range(1, N+1):
            if(visit_list[i]==1 and matrix[V][i]==1):
                queue.append(i)
                visit_list[i]=0

dfs(V) #출력
print()
bfs(V)