스위프트는 딕셔너리 기본값이 초기화가 되어 있지 않아서 알고리즘 풀기에는 쉽지 않은 언어이다.
다만 프레임워크나 개발쪽에서는 nil값등이 있는 것이 나은걸 보면 익숙해져야 하는게 맞는듯.
[코드]
import Foundation
func solution(_ keymap:[String], _ targets:[String]) -> [Int] {
var answer = [Int]()
var dict = [String: Int]()
for i in keymap {
var idx = 1
for j in i {
dict[String(j)] = min(dict[String(j)] ?? 2100000000, idx)
idx += 1
}
}
for i in targets {
var temp = 0
for j in i {
if dict[String(j)] == nil {
temp = -1
break
}
else {
temp += dict[String(j)]!
}
}
answer.append(temp)
}
return answer
}