Queue 2

[Algorithm] DFS/BFS stack과 queue를 이용한 완전탐색 알고리즘

안녕하세요. 오늘은 DFS와 BFS알고리즘에 대해서 알아 보겠습니다. DFS와 BFS는 그래프의 완전탐색 알고리즘입니다. 시간복잡도 두 알고리즘의 시간 복잡도에 대해서 먼저 설명드리겠습니다. 인접리스트형식으로 표현된 그래프와 인접행렬법으로 표현된 그래프에서의 시간복잡도는 다릅니다. 우선 인접행렬법(V by V 행렬 : V은 정점의 개수 입니다.)에서는 O(V^2)입니다. 각각의 노드에서 모든 노드로 간선이 있는지 여부를 알아야 하기 때문입니다. 두번째로 인접리스트형식(V: 정점의 개수, E: 간선의 개수)으로 표현된 그래프에서는 O(V+E)입니다. 각각의 노드에서 다른 노드로 간선이 리스트형식으로 존재함을 알기 때문에 V+E로 모두 탐색 가능합니다. 알고리즘 설명 DFS부터 알고리즘 설명 드리겠습니다. ..

[프로그래머스] 스택/큐 프린터 with Swift

안녕하세요. 오늘은 프로그래머스 2레벨 프린터 문제를 풀어보겠습니다! 프린터 문제는 인덱스가 바꾸기 때문에 로케이션이 포함된 구조체를 만들어서 문제를 풀었습니다! 1. waitingList를 만들어 입력된 우선순위를 넣어주겠습니다. 2. queue에서 가장 큰 우선순위가 맨 앞에 올대까지 enqueue와 dequeue를 해줍니다. 3. dequeue하면서 location을 비교하여 같을 시 while문을 탈출하고 answer를 return해줍니다. import Foundation struct list { var location:Int = 0 var priorities:Int = 0 } func solution(_ priorities:[Int], _ location:Int) -> Int { var wait..