Source Code
Solution
ํด๋น ๋ฌธ์ ๋ DFS์ ๊ด๋ จ๋ ๋ฌธ์ ๋ค.
1. ์ปดํจํฐ์ ์ฐ๊ฒฐ๋์ด์๋์ง ์๋์ง๋ฅผ ํ์ธํ๋ค.
-> 2์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ค์ด ์ฐ๊ฒฐ๋ ๋คํธ์ํฌ๋ค๋ง ๋ชจ์์ค๋ค. ์ฆ, ๊ฐ์ ๋ฐฐ์ด์ ์๋ ์ปดํจํฐ๋ ํ๋์ ๋คํธ์ํฌ์ด๋ค.
๊ณ ๋ก 1์ด๋ผ๊ณ ์ฐ๊ฒฐ๋์ด ์๋ ์ปดํจํฐ๋ฅผ ๊ฐ์ ๋ฐฐ์ด์ ๋ฃ์ด์ค๋ค.
2. ํ๋์ ์ปดํจํฐ๋ผ๋ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉด ํ๋์ ๋คํธ์ํฌ์ด๋ฏ๋ก ๊ฐ ์ปดํจํฐ ๋ง๋ค ์ฐ๊ฒฐ๋์ด์๋ ๊ฒ์ ํ์ธํ์ฌ ์ฌ๊ท๋ก ๋ชจ๋ ์ฐ๊ฒฐ๋ ์ปดํจํฐ์ ์ฐ๊ฒฐ์ ํ์ธํ๋ค.
ex) 1,2,3,4์ ์ปดํจํฐ๊ฐ ์๊ณ 1์ด 234 ์ปดํจํฐ์ ์ฐ๊ฒฐ๋์ด ์์๋ 2๊ฐ ์ด๋ค ์ปดํจํฐ๋ ์ฐ๊ฒฐ๋์ด์๋์ง ํ์ธ ๋ 2๋ ์ฐ๊ฒฐ๋ ์ปดํจํฐ๊ฐ ์ด๋ค ์ปดํจํฐ๋ ์ฐ๊ฒฐ๋์ด ์๋์ง ํ์ธํด์ค๋ค.
3.๋ง์ง๋ง์ผ๋ก ๊ฐ์ ์ฐ๊ฒฐ๋ก๋ ๋คํธ์ํฌ ์๋ฅผ ์ธ์ด์ค๋ค.
Problem
์๋กญ๊ฒ ์๊ฒ ๋๊ฒ
๋ฐฐ์ด ์ค ์ด๋ ํ ์กฐ๊ฑด์์ ํํฐ๋ง ํ์๋ ๋ง๋ ์กฐ๊ฑด์ ์ธ๋ฑ์ค๋ง ๋ชจ์ผ๋๋ฒ
ex)๋ฐฐ์ด ์ค ๊ฐ์ด 0์ธ ์ธ๋ฑ์ค๋ง ํ ๊ณณ์ ๋ชจ์ผ๋๋ฒ
array.enumrated().filter{$0.element == 0 }.map{$0.offset}
๋ค๋ฅธ ์ฌ๋ ํ์ด
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import Foundation
func solution(_ n:Int, _ computers:[[Int]]) -> Int {
var visit: [Bool] = Array(repeating: false, count: n)
var answer: Int = 0
func bfs(_ vertax: Int) {
visit[vertax] = true
for i in 0..<n {
if computers[vertax][i] == 1 && visit[i] == false {
bfs(i)
}
}
}
for i in 0..<n {
if !visit[i] {
answer += 1
bfs(i)
}
}
return answer
}
|
ํ์์ ํ ์คํธ๋ง ํต๊ณผํ๋ฉด (์๊ฐ์ด๊ณผ๊ฐ ์๋๋ฉด) ํจ์จ์ ์ผ๋ก ํ์๋๋ณด๋ค ํ๊ณ ๋์ด๊ฐ๋๋ฐ
์ฒ์์ผ๋ก ๋ค๋ฅธ ์ฌ๋ ํ์ด๋ ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ณ๋ก ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋์ง ํ์ธํด๋ณด์๋ค.
์ข์ธก์ด ๋ค๋ฅธ ์ฌ๋ ํ์ด,์ฐ์ธก์ด ๋ด ํ์ด๊ฐ ๊ฑธ๋ฆฐ ์๊ฐ์ธ๋ฐ 10๋ฐฐ์์ ๋ง๊ฒ๋ 20๋ฐฐ์ฐจ์ด๊น์ง ๋๋ค...
์ด์ ํ์๋ค๊ณ ๊ทธ๋ฅ ๋์ด๊ฐ๋ ๊ฒ์ด ์๋ ๋ ํจ์จ์ ์ผ๋ก ํธ๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํ๊ณ ๋์ด๊ฐ์ผ๊ฒ ๋ค....
๊ทธ๋๋ ์ฒ์ 3๋จ๊ณ๋ก ๋ค์ด์จ๊ฑฐ์น๊ณค ๋์์ง ์์๋ค ใ ใ ใ
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ๋จ์ด ๋ณํ Swift (0) | 2020.12.11 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ๋ฒ ์คํธ ์จ๋ฒ Swift (0) | 2020.12.10 |
ํ๋ก๊ทธ๋๋จธ์ค SQL (0) | 2020.12.06 |
2019 KAKAO BLIND RECRUITMENT ํ๋ณดํค Swift (0) | 2020.12.04 |
ํ๋ก๊ทธ๋๋จธ์ค ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1 ์ผ๊ฐ ๋ฌํฝ์ด Swift (0) | 2020.12.01 |
๋๊ธ