티스토리 뷰
문제
https://school.programmers.co.kr/learn/courses/30/lessons/43162?language=swift
풀이
BFS를 이용해 간단하게 해결할 수 있었다.
컴퓨터를 하나씩 확인해가며 연결된 컴퓨터가 있다면 방문표시를 해준 뒤에 큐에 넣어준다. 하나의 컴퓨터가 확인이 끝나면 큐에 들어있는 다른 컴퓨터를 이어서 확인해주면 된다.
import Foundation
func solution(_ n:Int, _ computers:[[Int]]) -> Int {
var result = 0
var visited = Array(repeating: false, count: n)
var queue: [Int] = []
for i in 0..<n {
if visited[i] {
continue
}
result += 1
queue.append(i)
visited[i] = true
var idx = 0
while idx < queue.count {
let current = queue[idx]
idx += 1
for j in 0..<n {
if computers[current][j] == 1 && !visited[j] {
queue.append(j)
visited[j] = true
}
}
}
}
return result
}
_____________________________________________________________________________________________________
예전에는 어떻게 풀어야할지 몰랐던 문제인데 bfs문제들을 많이 풀어보니 쉽게 풀 수 있었다.
'PS' 카테고리의 다른 글
[Swift] 백준_1로 만들기(1463) (0) | 2023.01.27 |
---|---|
[Swift] 프로그래머스_퍼즐 조각 채우기 (0) | 2023.01.26 |
[Swift] 백준_말이 되고픈 원숭이(1600) (1) | 2023.01.25 |
[Swift] 백준_다리 만들기(2146) (0) | 2023.01.25 |
[Swift] 백준_빙산(2573) (0) | 2023.01.24 |
댓글
최근에 올라온 글
- Total
- Today
- Yesterday