[ 2023-07-18 ๐ŸŽฐ TIL ]

Burkeyยท2023๋…„ 7์›” 18์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
122/157

๋ฐฑ์ค€ 1260๋ฒˆ ํŒŒ์ด์ฌ


๋ฌธ์ œ


์ฝ”๋“œ

import sys
from collections import deque

input = sys.stdin.readline

n, m, v = map(int, input().split())

graph = [[False] * (n+1) for _ in range(n + 1)]
visited_dfs = [False] * (n+1) # ๋…ธ๋“œ์˜ ๋ฐฉ๋ฌธ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฐฐ์—ด
visited_bfs = [False] * (n+1)
# ๋…ธ๋“œ์˜ ๋ฐฉ๋ฌธ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฐฐ์—ด

for _ in range(m):
  n1, n2 = map(int, input().split())
  graph[n1][n2] = graph[n2][n1] = True
  # ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค์„ ์ฒดํฌ
  
def dfs(s):
  visited_dfs[s] = True
  print(s, end= ' ')
  for i in range(1, n+1):
    if (visited_dfs[i] == False and graph[s][i] == True) :
    # ๋ฐฉ๋ฌธํ•œ ์ ์ด ์—†๊ณ  ํ•ด๋‹น ๋…ธ๋“œ์— ๊ฐ’์ด ์กด์žฌ ํ•  ๋•Œ ํƒ์ƒ‰ ์‹œ์ž‘
      dfs(i)
dfs(v)
print()

def bfs(s): # ํ๋ฅผ ์‚ฌ์šฉ
  q = deque([s]) # ๋ฐฉ๋ฌธํ•ด์•ผ ํ•  ๊ณณ ์ถ”๊ฐ€
  visited_bfs[s] = True
  
  while q: # ๋ฐฉ๋ฌธํ•  ๊ณณ์ด ์—†์œผ๋ฉด ์ข…๋ฃŒ
    x = q.popleft()
    print(x, end = ' ')
    for i in range(1, n+1):
      if (visited_bfs[i] == False and graph[x][i] == True):
      # ์žฅ๋ฌธํ•œ ์ ์ด ์—†๊ณ  ํ•ด๋‹น ๋…ธ๋“œ์˜ ๊ฐ’์ด ์กด์žฌํ•  ๋•Œ
        q.append(i) 
        visited_bfs[i] = True

bfs(v)
print()

dfs๋Š” ๊ตฌํ˜„ํ•˜๊ธฐ ์–ด๋ ต์ง€ ์•Š์ง€๋งŒ bfs๊ฐ€ ์ •๋ง ํ—ท๊ฐˆ๋ฆฐ๋‹ค..ใ… 

profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2023๋…„ 7์›” 18์ผ

์ •๋ง ์œ ์ตํ•œ ๊ธ€์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ