[1260번] DFS, BFS

2023. 3. 11. 11:53·Coding Test/Search
728x90
 

1260번: DFS와 BFS

첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사

www.acmicpc.net

 

from collections import deque

# dfs로 탐색한 결과와 BFS로 탐색한 결과 출력
# 방문할 수 있는 노드가 여러개일 경우 노드 번호가 작은 것을 먼저 방문

# 노드 개수, 에지 개수, 시작 노드 번호
n, m, start = map(int, input().split())

#인접 리스트
list = [[] for _ in range(n+1)]
for _ in range(m):
    s, e = map(int, input().split())
    list[s].append(e)
    list[e].append(s)

# 번호가 작은 노드부터 방문하기 위해 정렬
for i in range(n+1):
    list[i].sort()

# 깊이우선 탐색
def dfs(v):
    visitList[v] = True
    print(v, end=' ')
    for i in list[v]:
        if not visitList[i]:
            dfs(i)

visitList = [False]*(n+1)
dfs(start)

# 너비우선 탐색
def bfs(v):
    # queue 자료구조에 시작노드 삽입
    queue = deque()
    queue.append(v)
    # 방문 리스트에 현재 노드 방문 기록
    visitList[v] = True

    # 큐가 비어있을때 까지
    while queue:
        # 큐에서 노드 데이터 가져오기
        now = queue.popleft()
        # 가져온 노드 출력
        print(now, end=' ')

        # 현재 노드의 연결 노드 중 미방문 노드 큐에 삽입하고 방문기록
        for i in list[now]:
            if not visitList[i]:
                queue.append(i)
                visitList[i] = True

print()
visitList = [False]*(n+1)
bfs(start)

 

 

728x90
'Coding Test/Search' 카테고리의 다른 글
  • 합이 같은 부분집합(DFS)
  • 부분집합 구하기(DFS)
  • [10829] 이진수 변환(DFS)
  • [1920번] 수 찾기 (이진탐색)
Karla Ko
Karla Ko
𝘾𝙤𝙣𝙩𝙞𝙣𝙪𝙤𝙪𝙨𝙡𝙮 𝙄𝙢𝙥𝙧𝙤𝙫𝙞𝙣𝙜, 𝘾𝙤𝙣𝙨𝙩𝙖𝙣𝙩𝙡𝙮 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙞𝙣𝙜 𝙔𝙚𝙨!
    250x250
  • Karla Ko
    karlaLog
    Karla Ko
  • 전체
    오늘
    어제
    • Total (467)
      • Spring (19)
      • JPA (4)
      • Cloud & Architecture (15)
        • Kubernetes (5)
        • Docker (3)
        • MSA (2)
        • GCP (1)
        • AWS (4)
      • Devops (1)
      • Message Queue (4)
        • Kafka (2)
        • RabbitMQ (2)
      • Git (4)
      • DB (4)
      • Java (9)
      • Python (4)
      • CS (11)
        • OS (8)
        • Network (2)
        • Algorithm (1)
      • Coding Test (392)
        • programmers (156)
        • Graph (43)
        • DP (37)
        • Search (31)
        • Tree (13)
        • Data Structure (26)
        • Combination (12)
        • Implement (18)
        • Geedy (23)
        • Sort (7)
        • Math (21)
        • geometry (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스택
    월간코드챌린지
    백준
    정렬
    최단거리
    동적계획법
    프로그래머스
    구간합
    Algorithm
    BFS
    재귀
    덱
    파이썬
    알고리즘
    이분탐색
    플로이드워셜
    LIS
    최소신장트리
    그리디
    자료구조
    DP
    구현
    힙
    최대공약수
    트리
    DFS
    그래프
    큐
    다익스트라
    조합
  • hELLO· Designed By정상우.v4.10.3
Karla Ko
[1260번] DFS, BFS
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.