์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- ์ฝ๋ฉํ ์คํธ
- ์์
- ๋ฌธ์์ด
- ๋ธ๋ฃจํธํฌ์ค
- dfs
- ๋์ ํฉ
- ์ฝํ
- ์คํ
- Swift
- ios
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค
- ๋นํธ์ฐ์ฐ์
- ๋ถํ ์ ๋ณต
- BFS
- ์ด์งํ์
- ๋ถํ ํ์
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- dp
- ํ๋ก๊ทธ๋๋จธ์ค
- SwiftUI
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ถํ ์ ๋ณต
- WebApp
- WebView
- ๋ฐฑํธ๋ํน
- Queue
Archives
- Today
- Total
MUKER_DEV with iOS
[swift] ๋ฐฑ์ค - 9466๋ฒ: ํ ํ๋ก์ ํธ ๋ณธ๋ฌธ
์ฑ๊ณต ํ์ด
for _ in 0..<Int(readLine()!)! {
let n = Int(readLine()!)!
let choice = [0]+readLine()!.split(separator: " ").map { Int($0)! }
var visited = Array(repeating: false, count: n+1)
var finish = Array(repeating: false, count: n+1)
var result = n
func dfs(_ num: Int) {
visited[num] = true
let next = choice[num]
if !visited[next] { dfs(next) }
else if !finish[next] {
var i = next
while i != num {
result -= 1
i = choice[i]
}
result -= 1
}
finish[num] = true
}
for i in 1...n {
if !visited[i] {
dfs(i)
}
}
print(result)
}
ํ์ด ํค์๋
BFS
'๐ค ์๊ณ ๋ฆฌ์ฆ > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ๋ฐฑ์ค - 10101๋ฒ: ์ผ๊ฐํ ์ธ์ฐ๊ธฐ (0) | 2023.05.13 |
---|---|
[swift] ๋ฐฑ์ค - 9465๋ฒ: ์คํฐ์ปค (0) | 2023.05.11 |
[swift] ๋ฐฑ์ค - 14940๋ฒ: ์ฌ์ด ์ต๋จ๊ฑฐ๋ฆฌ (0) | 2023.05.09 |
[swift] ๋ฐฑ์ค - 9063๋ฒ: ๋์ง (0) | 2023.05.08 |
[swift] ๋ฐฑ์ค - 15894๋ฒ: ์ํ์ ์ฒด์ก๊ณผ๋ชฉ ์ ๋๋ค (0) | 2023.05.07 |