[DFS]백준: 연결 요소의 개수(Swift)

2022. 10. 25. 16:27·코테

난이도: 실버2

사용 언어: Swift

카테고리: DFS

https://www.acmicpc.net/problem/11724
 

11724번: 연결 요소의 개수

첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주

www.acmicpc.net

code

let nm = readLine()!.split(separator: " ").map { Int($0)! }
let n = nm[0]
let m = nm[1]

var link = Array(repeating: Array(repeating: false, count: n + 1), count: n + 1)
var visited = Array(repeating: false, count: n + 1)

for _ in 0..<m {
  let uv = readLine()!.split(separator: " ").map { Int($0)! }
  let u = uv[0]
  let v = uv[1]
  link[u][v] = true
  link[v][u] = true
}

func dfs(start: Int) {
  visited[start] = true
  
  for i in 1...n {
    if visited[i] == false && link[start][i] {
      dfs(start: i)
    }
  }
}

var result = 0

for i in 1...n {
  if visited[i] == false {
    result += 1
    dfs(start: i)
  }
}

print(result)

'코테' 카테고리의 다른 글

[BFS] 백준: 적록색약(Swift)  (0) 2022.10.29
[BFS] 백준: 섬의 개수(Swift)  (0) 2022.10.27
[BFS] 백준: 유기농 배추(Swift)  (0) 2022.10.24
[DFS] 백준: 바이러스(Swift)  (0) 2022.10.20
[BFS] 백준: 단지번호붙이기(Swift)  (0) 2022.10.20
'코테' 카테고리의 다른 글
  • [BFS] 백준: 적록색약(Swift)
  • [BFS] 백준: 섬의 개수(Swift)
  • [BFS] 백준: 유기농 배추(Swift)
  • [DFS] 백준: 바이러스(Swift)
Esiwon
Esiwon
iOS 개발 블로그
  • Esiwon
    시원한 코드 기록
    Esiwon
  • 전체
    오늘
    어제
    • 분류 전체보기 (70)
      • iOS&Swift (24)
      • git & github (1)
      • 코테 (41)
      • 네부캠 회고 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    그리디
    브루트포스 알고리즘
    재귀
    Swift
    photoUI
    백준
    Race Condition
    알고리즘
    동시성
    구현
    다이나믹 프로그래밍
    BFS
    코딩테스트
    photos
    ios
    비동기
    PhotoKit
    GCD
    챌린지
    이분탐색
    노드
    탐색
    Property wrapper
    회고
    네부캠
    코테
    Combine
    완전탐색
    실버
    dfs
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Esiwon
[DFS]백준: 연결 요소의 개수(Swift)
상단으로

티스토리툴바