[swift] dfs / bfs 기본

ohtt-iOS·2020년 12월 12일
0

알고리즘

목록 보기
2/4
post-thumbnail

개린이가 쓴 글이므로 오류가 있을 수 있음을 미리 알려드립니다 🐹 (꾸벅)

swift 에서 dfs / bfs 가장 기본적인 코드를 보여드립니다 :)

🐹 dfs

import Foundation

func dfs(v: Int){
    
    visited[v] = true
    print(v, terminator: " ")
    for i in graph[v] {
        if !visited[i] {
            print(visited)
            dfs(v: i)
        }
    }
}

let graph = [
    [],
    [2,3,8],
    [1,7],
    [1,4,5],
    [3,5],
    [3,4],
    [7],
    [2,6,8],
    [1,7]
]

var visited = [Bool](repeating: false, count: 9)

🐹 bfs

let graph = [
    [],
    [2,3,8],
    [1,7],
    [1,4,5],
    [3,5],
    [3,4],
    [7],
    [2,6,8],
    [1,7]
]

var visited = [Bool](repeating: false, count: 9)
var myQueue = Queue<Int>()

func bfs (start: Int) {
    myQueue.enqueue(start)
    visited[start] = true
    
    while !myQueue.isEmpty {
        guard let a = myQueue.dequeue() else { return }
        print(a, terminator: " ")
        for i in graph[a] {
            if !visited[i] {
                myQueue.enqueue(i)
                visited[i] = true
            }
        }
    }
}

코드는 여기서 확인 !

profile
오뜨 삽질 🔨 블로그

0개의 댓글