์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ํจ์คํธ์บ ํผ์ค
- rxcocoa
- MVVM
- visionOS
- TCA
- ๋ฐฑ์ค
- arkit
- RxSwift
- combine
- CollectionView
- ios
- tableView
- BFS
- raywenderlich
- Xcode
- ํ๋ก๊ทธ๋๋จธ์ค
- Flutter
- XCTest
- SwiftUI
- UIKit
- Swfit
- realm
- Kuring
- node.js
- Lv2
- SnapKit
- reactorkit
- swift
- designpattern
- BOJ
- Today
- Total
lgvv98
[Swift] BOJ 2606 ๋ฐ์ด๋ฌ์ค ๋ณธ๋ฌธ
BOJ 2606 ๋ฐ์ด๋ฌ์ค
โ ์ด๊ฑด ์ง์ง ์ฌ์ ์. ( solved.ac ๊ธฐ์ค ์ค3 )
์ฌ์ค ์ด์ ์ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์ํ๋ ค์ ์ด๊ฑธ๋ก ์ด๋ํจ
๊ทธ ๋ฌธ์ ๋ ๋ฌธ์ ์ค๊ณ๋ ํ๋๋ฐ, ๋ญ๊ฐ ์ด๋์ ์ค๋ฅ๊ฐ ๋๋์ง ์ ๋๋ก ์๋์ด์ ๊ฑ ํจ์คํ์.
๋ค๋ฅธ๊ฑด ์๋๊ณ ์ฃผ์ํ ์ ํ๋๋ง ๋จ๊ฒจ๋๊ฒ ์.
๋ด๊ฐ ํํ ํ๋ ์ค์ ์ค ํ๋๊ฐ, ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ ๋ฐ๋ ์๊ฐ์์ ์ ์ง๋ฅด๋ ์ค์์ธ๋ฐ
๊ทธ๋ํ ํํ๋ผ๋ฉด ์๋ก๊ฐ ์๋ก๋ฅผ ๋ฐฐ์ด์ ๋ด์์ผ ํจ.
๋ฌด์จ ๋ง์ด๋๋ฉด ๋๋ ์ฃผ๋ก [ Int: [Int] ] ํํ๋ก ์ ๋ ฅ์ ์ฒ๋ฆฌํ๋๋ฐ
2๋ฒ๊ณผ 5๋ฒ์ ๊ฒฝ์ฐ
2: [1,3,5]
5: [1,2,6]
์ด๋ ๊ฒ ๊ฐ์ ธ์ผํ๋ค๋ ๋ง์.
๊ทผ๋ฐ ๋๋ ํธ๋ฆฌ์ฒ๋ผ ์ฒ๋ฆฌ๋ฅผ ํด์ ์ค์๋ฅผ ์ข ์ข ํจ.
๋๋ ๊ทธ๋ฅ DFS๋ก ํ๋๋ฐ BFS์ฌ์ฉํด๋ ์๊ด ์์
๐ ์ฝ๋
import Foundation
struct b2606 {
static func run() {
// Input ์ฒ๋ฆฌ
var n = Int(readLine()!)!
var input = Int(readLine()!)!
var list = [Int: [Int]]()
for _ in 0..<input {
let line = readLine()!.split(separator: " ").map{ Int(String($0))! }
let start = line[0]
let end = line[1]
if list[start] == nil {
list[start] = [end]
} else {
list[start]?.append(end)
}
if list[end] == nil {
list[end] = [start]
} else {
list[end]?.append(start)
}
}
// print(list)
let a = DFS(graph: list, start: 1)
print(a.count-1)
}
}
import Foundation
func DFS<T> (graph: [T: [T]], start: T) -> [T] {
var visitedQueue: [T] = []
var needVisitStack: [T] = [start]
while !needVisitStack.isEmpty {
let node: T = needVisitStack.removeLast()
if visitedQueue.contains(node) { continue }
visitedQueue.append(node)
needVisitStack += graph[node] ?? []
}
return visitedQueue
}
'์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] BOJ 2667 ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (0) | 2022.04.03 |
---|---|
[Swift] BOJ 1012 ์ ๊ธฐ๋ ๋ฐฐ์ถ (0) | 2022.04.03 |
[Swift] BOJ 2178 ๋ฏธ๋ก ํ์ (0) | 2022.04.02 |
[Swift] BOJ 10844 ์ฌ์ด ๊ณ๋จ ์ (0) | 2022.04.02 |
[Swift] BOJ 2158 ํฌ๋์ฃผ ์์ (0) | 2022.04.02 |