본문 바로가기
Programming

백준_1260_DFS와 BFS_0803

by WelcomeBro 2023. 8. 3.
반응형

해쉬로 하던 습관을 고치고 남들이 하는거 처럼 하니까 코드가 훨씬 깔끔해보이고 기분이 좋다!

 

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
31
32
33
34
35
36
37
node_num, line_num, start_num = map(int,input().split())
map1 = [[False for _ in range(node_num+1)] for _ in range(node_num+1)]
 
for i in range(line_num):
    a,b = map(int,input().split())
    map1[a][b] = True
    map1[b][a] = True
 
def bfs(i):
    if visited_bfs[i] == False:
        print(i, end=' ')
        visited_bfs[i] = True
    test = [i]
    while len(test)!=0:
        now = test[0]
        for k in range(1,len(map1[now])):
            if map1[now][k] == True and visited_bfs[k] == False:
                visited_bfs[k] = True
                print(k, end=' ')
                test.append(k)
        test.pop(0)
 
def dfs(i):
    if visited_dfs[i] == False:
        print(i, end=' ')
        visited_dfs[i] = True
    for k in range(1,len(map1[i])):
        if map1[i][k] == True and visited_dfs[k] == False:
            visited_dfs[k] = True
            print(k, end=' ')
            dfs(k)
            
visited_dfs = [False for _ in range(node_num+1)] 
visited_bfs = [False for _ in range(node_num+1)] 
dfs(start_num)
print()
bfs(start_num)            
cs

 

 

Be positive!

Be rich!

Live your life!

반응형