ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ฅ ๋ฌธ์
๋คํธ์ํฌ๋ ์ปดํจํฐ ์ํธ ๊ฐ์ ์ ๋ณด๋ฅผ ๊ตํํ ์ ์๋๋ก ์ฐ๊ฒฐ๋ ํํ๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ปดํจํฐ A์ ์ปดํจํฐ B๊ฐ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด์๊ณ , ์ปดํจํฐ B์ ์ปดํจํฐ C๊ฐ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ ๋ ์ปดํจํฐ A์ ์ปดํจํฐ C๋ ๊ฐ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์ ๋ณด๋ฅผ ๊ตํํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ปดํจํฐ A, B, C๋ ๋ชจ๋ ๊ฐ์ ๋คํธ์ํฌ ์์ ์๋ค๊ณ ํ ์ ์์ต๋๋ค.
์ปดํจํฐ์ ๊ฐ์ n, ์ฐ๊ฒฐ์ ๋ํ ์ ๋ณด๊ฐ ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด computers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋คํธ์ํฌ์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์์ค.
๐ค ํ์ด ๋ฐฉ๋ฒ
์๊ฐํด๋ณด์.
- [[1, 1, 0], [1, 1, 0], [0, 0, 1]]
- 0๋ฒ๊ณผ 0๋ฒ, 1๋ฒ์ด ์ฐ๊ฒฐ๋์ด์๋ค.
- 1๋ฒ๊ณผ 0๋ฒ, 1๋ฒ์ด ์ฐ๊ฒฐ๋์ด์๋ค.
- 2๋ฒ๊ณผ 2๋ฒ์ด ์ฐ๊ฒฐ๋์ด์๋ค.
- 0-1, 2์ ๊ฐ์ ํํ๋ก 2๊ฐ์ ๋คํธ์ํฌ๊ฐ ์๋ค.
- [[1, 1, 0], [1, 1, 1], [0, 1, 1]]
- 0๋ฒ๊ณผ 0๋ฒ, 1๋ฒ์ด ์ฐ๊ฒฐ๋์ด์๋ค.
- 1๋ฒ๊ณผ 0๋ฒ, 1๋ฒ, 2๋ฒ์ด ์ฐ๊ฒฐ๋์ด์๋ค.
- 2๋ฒ๊ณผ 1๋ฒ, 2๋ฒ์ด ์ฐ๊ฒฐ๋์ด์๋ค.
- 0-1-2์ ๊ฐ์ ํํ๋ก 1๊ฐ์ ๋คํธ์ํฌ๊ฐ ์๋ค.
๊น์ด ์ฐ์ ํ์์ด๋ ๋ฃจํธ ๋ ธ๋์์๋ถํฐ ์์ํด์ ๋ค์ ๋ธ๋์น๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ํด๋น ๋ธ๋์น๋ฅผ ์๋ฒฝํ๊ฒ ํ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
0๋ฒ ๋ ธ๋๋ถํฐ ํ์์ ์งํํ๋ค. ์ด๋ ํ์์ ์งํํ๋ ๋ ธ๋๋ ์ ์ ๋ฐฉ๋ฌธ๋ ์ ์ด ์๋ ๋ ธ๋์ฌ์ผ ํ๋ค.
- ํ์์ ์์ํ๋ฉด ๋จผ์ ๋ฐฉ๋ฌธ ์ฒดํฌ๋ฅผ ํ๋ค.
- ํด๋น ๋ ธ๋์ ์ฐ๊ฒฐ๋ ๋ ธ๋๊ฐ ์๊ณ ๊ทธ ๋ ธ๋๊ฐ ์ ์ ๋ฐฉ๋ฌธ๋ ์ ์ด ์๋ค๋ฉด ์ฐ๊ฒฐ๋ ๋ ธ๋๋ฅผ ํ์ํ๋ค.
์ 1, 2์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค ๋ ์ด์ ์ฐ๊ฒฐ๋ ๋
ธ๋๊ฐ ์์ผ๋ฉด ๋ฆฌํดํ๋ค.
์ฐ๊ฒฐ๋ ํ๋์ ๋คํธ์ํฌ๋ฅผ ๋ค ํ์ํ๋ค. ๋คํธ์ํฌ์ ๊ฐ์์ธ answer์ +1 ํด์ค๋ค.
๋ฐฉ๋ฌธ๋์ง ์์ ๋ ธ๋๋ถํฐ ๋ค์ ํ์์ ์์ํ๋ค.
๐ฉ๐ปโ๐ป Swift Code
import Foundation
func solution(_ n:Int, _ computers:[[Int]]) -> Int {
var answer = 0
var visit = Array(repeating: false, count: n)
for node in 0..<n where !visit[node] {
dfs(n, computers, node, &visit)
answer += 1
}
return answer
}
func dfs(_ n: Int, _ computers: [[Int]], _ node: Int, _ visit: inout [Bool]) {
visit[node] = true
for i in 0..<n where computers[node][i] == 1 {
let targetNode = computers[node][i]
if !visit[i] {
dfs(n, computers, i, &visit)
}
}
}
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋คํธ์ํฌ
๋คํธ์ํฌ๋ ์ปดํจํฐ ์ํธ ๊ฐ์ ์ ๋ณด๋ฅผ ๊ตํํ ์ ์๋๋ก ์ฐ๊ฒฐ๋ ํํ๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ปดํจํฐ A์ ์ปดํจํฐ B๊ฐ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด์๊ณ , ์ปดํจํฐ B์ ์ปดํจํฐ C๊ฐ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์
programmers.co.kr
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2021.06.21 |
---|---|
[Algorithm] ์์ฅ (ํด์) (0) | 2021.06.21 |
[Algorithm] ํ๊ฒ ๋๋ฒ (๊น์ด ์ฐ์ ํ์(DFS)) (0) | 2021.06.20 |
[Algorithm] ๋ชจ์๊ณ ์ฌ (์์ ํ์) (0) | 2021.06.20 |
[Algorithm] H-Index (์ ๋ ฌ) (0) | 2021.06.20 |
- Total
- Today
- Yesterday
- map
- Firebase
- ์ต๋๊ณต์ฝ์
- Kakao
- IOS
- abs()
- java
- UISearchController
- DFS
- programmers
- Git
- Baekjoon
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ๋ฌ๋ ฅ
- ternary
- sql
- calendar
- BOJ
- compactMap
- ํ๋ก๊ทธ๋๋จธ์ค
- SWIFT
- ๋ณ์ก
- mysql
- Algorithm
- ์ต์๊ณต๋ฐฐ์
- iTunes Search API
- ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ
- ๊น์ด ์ฐ์ ํ์
- ์๋กํ ์คํ ๋ค์ค์ ์ฒด
- TIL
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |