문제 소개
문제 풀이
Dictionary 자료구조를 사용하여 트리구조를 만들었다. print의 위치를 조절하여 트리 순회를 구현했다.
import Foundation
let n = Int(readLine()!)!
var tree = [String: (root: String, left: String, right: String)]()
for _ in 0..<n {
let info = readLine()!.split(separator: " ").map { String($0) }
let (root, left, right) = (info[0], info[1], info[2])
tree[root] = (root, left, right)
}
func preorder(_ node: String) {
guard let node = tree[node] else { return }
print(node.root, terminator: "")
if node.left != "." {
preorder(node.left)
}
if node.right != "." {
preorder(node.right)
}
}
func inorder(_ node: String) {
guard let node = tree[node] else { return }
if node.left != "." {
inorder(node.left)
}
print(node.root, terminator: "")
if node.right != "." {
inorder(node.right)
}
}
func postorder(_ node: String) {
guard let node = tree[node] else { return }
if node.left != "." {
postorder(node.left)
}
if node.right != "." {
postorder(node.right)
}
print(node.root, terminator: "")
}
preorder("A")
print(" ")
inorder("A")
print(" ")
postorder("A")
'→ Problems' 카테고리의 다른 글
[Algorithm] 백준 - 11725번 트리의 부모 찾기 (Swift) (0) | 2024.05.26 |
---|---|
[Algorithm] 백준 - 2250번 트리의 높이와 너비 (Swift) (0) | 2024.05.26 |
[Algorithm] 백준 - 1261번 알고스팟 (Swift) (0) | 2024.05.24 |
[Algoritm] 백준 - 13549번 숨바꼭질3 (Swift) (0) | 2024.05.23 |
[Algorithm] 백준 - 14226번 이모티콘 (Swift) (0) | 2024.05.22 |