코드
func solution(_ tickets:[[String]]) -> [String] {
var visited = Array(repeating: false, count: tickets.count)
let tickets = tickets.sorted { $0[1] < $1[1] }
var path = [String]()
func dfs(_ airport: String) {
if path.count == tickets.count {
path.append(airport)
return
}
for i in 0..<tickets.count {
let src = tickets[i][0]
let dst = tickets[i][1]
if airport == src, visited[i] == false {
visited[i] = true
path.append(src)
dfs(dst)
if path.count == tickets.count + 1 {
return
}
path.removeLast()
visited[i] = false
}
}
}
dfs("ICN")
return path
}
회고
- dfs 문제인것은 알았지만 구현을 하지못해서 다른 사람의 코드를 참고했다
- 왜 안풀릴까..
- 코드를 보고 이해가 되서 다행이다
- 다음에 비슷한 유형은 꼭 풀었으면 좋겠다