Baekjoon/DFS와 BFS

[백준] 11724 연결 요소의 개수 (실버2) / DFS

2023. 4. 26. 11:58

문제요약

그림과 같이 되어있다면 연결된 요소로 친다.

나의 코드 및 설명

  • 이차원 리스트에 그래프 정보를 저장한다.
  • dfs 함수 : 시작노드를 의미하는 변수 sn과 연결된 노드들의 방문 정보를 체크한다. 만약 방문하지 않은 노드라면 방문 체크하고, 해당 노드에 대한 하위 dfs 함수를 호출한다.
  • 메인 함수에서 1번 노드부터 마지막 노드까지 방문하며 아직 방문하지 않은 노드가 있다면 dfs 함수를 호출하고 카운트한다.
import sys
sys.setrecursionlimit(10**4)

def dfs(sn):
    for i in board[sn]:
        if visited[i] == 0:
            visited[i] = sn
            dfs(i)

n,m = map(int, input().split())
board = [[] for _ in range(n+1)]
visited = [0] * (n+1)
for _ in range(m):
    start, end = map(int ,input().split())
    board[start].append(end)
    board[end].append(start)

count = 0

#1번노드부터 마지막 노드까지 방문
for i in range(1,n+1):
    #만약 해당 노드가 방문 전이라면
    if visited[i] == 0:
        #방문해서 dfs수행
        #노드가 연결되어 있다면 연결된 노드의 방문 테이블은 갱신될 것
        dfs(i)
        count += 1

print(count)

피드백

DFS 연습을 위해 풀어본 문제. 이 문제는 Pypy로 실행시켜 통과할 수 있었는데, 파이썬으로 실행시켜 통과하기 위해서는 input() 대신 sys.stdin.readline() 을 사용하면 통과할 수 있다고 한다. 코드에는 별 문제가 없이 정상적으로 구현한 것 같아 빠르게 다음 문제로 넘어가도록 하자.

'Baekjoon > DFS와 BFS' 카테고리의 다른 글

🥇[백준] 7576 토마토 (골드5) / BFS  (0) 2023.04.30
[백준] 2468 안전 영역 (실버1) / BFS  (0) 2023.04.26
[백준] 11725 트리의 부모 찾기 (실버2) / DFS  (0) 2023.04.26
[백준] 4963 섬의 개수 (실버2) / DFS, BFS  (0) 2023.04.26
[백준] 5014 스타트링크 (실버1) / BFS  (2) 2023.04.25
'Baekjoon/DFS와 BFS' 카테고리의 다른 글
  • 🥇[백준] 7576 토마토 (골드5) / BFS
  • [백준] 2468 안전 영역 (실버1) / BFS
  • [백준] 11725 트리의 부모 찾기 (실버2) / DFS
  • [백준] 4963 섬의 개수 (실버2) / DFS, BFS
hellosonic
hellosonic
꾸준함hellosonic 님의 블로그입니다.
hellosonic
꾸준함
hellosonic
전체
오늘
어제
  • 분류 전체보기 (285)
    • SSAFY (4)
    • 프로그래머스 데브코스 (26)
    • Diary (1)
    • JavaScript (20)
    • ToyPJ (13)
      • Python-Django (13)
    • CS지식 (11)
      • 자료구조 (5)
      • 개발 상식 (2)
      • 네트워크 (4)
    • Baekjoon (141)
      • IM Level (57)
      • DFS와 BFS (21)
      • 백트래킹 (21)
      • DP (3)
      • 이분탐색 (4)
      • 구현 (14)
    • Programmers (13)
      • Lv1 (4)
      • Lv2 (9)
    • SWEA (SW Expert Academy) (52)
      • D1 (5)
      • D2 (7)
      • D3 (40)
    • 이코테 (4)
    • Grammar (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 관리자

공지사항

인기 글

태그

  • SWEA
  • 파이썬 1269
  • javascript ux
  • 프로그래머스
  • 리액트 todolist
  • 구현
  • 파이썬 1436
  • 코딩부트캠프
  • 국비지원교육
  • 백준 18870
  • 자바스크립트 기본기
  • SWEA D2
  • JS
  • SWEA 파이썬
  • 백준 2999
  • 백준 5212
  • 파이썬 11478
  • 프로그래머스 데브코스
  • 파이썬
  • 파이썬 1946
  • 파이썬 2529
  • 이코테
  • 백준
  • SWEA/D3
  • 그리디
  • 백준 14891
  • 백준 1157
  • SWEA D3
  • 자바스크립트
  • 프론트엔드 데브코스

최근 댓글

최근 글

hELLO · Designed By 정상우.
hellosonic
[백준] 11724 연결 요소의 개수 (실버2) / DFS
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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