[Swift] 백준10845 큐
·
📝 코테/BOJ
import Foundation /// 기본 VPS : () /// 만일 x가 VPS라면 (x)도 VPS /// x: VPS, y: VPS라면 xy도 VPS let N = Int(readLine()!)! var queue = Queue() for _ in 1...N { let li = readLine()! if li.hasPrefix("push") { let strComp = li.components(separatedBy: " ") let num = Int(strComp[1])! queue.enqueue(num) } else if li.hasPrefix("pop") { if let num = queue.dequeue() { print(num) } else { print("-1") } } else if l..
[Swift] 큐(Queue) 구현하기
·
💻 CS/자료구조
큐 선입선출(FIFO) : 먼저들어온 놈이 먼저 나가는 자료구조 Swift 에서의 구현 struct Queue { private var queue: [T] = [] public var count: Int { return queue.count } public var isEmpty: Bool { return queue.isEmpty } public mutating func enqueue(_ element: T) { queue.append(element) } public mutating func dequeue() -> T? { return isEmpty ? nil : queue.removeFirst() } } 그러나 이 방법은 dequeue시에 element들이 자리를 당기는 과정에서 O(n)의 시간복잡도가 ..
[Swift] 백준2164
·
📝 코테/BOJ
import Foundation /// 카드는 1 ~ N까지 번호 붙어있음 /// 1번 카드가 제일 위, N번카드가 제일 아래 /// 아래 사항을 반복 /// 1. 제일 위의 카드를 바닥에 버림 /// 2. 제일 위의 카드를 제일 아래 카드 밑으로 옮김 /// 마지막으로 남게되는 카드는 뭐냐? let N = Int(readLine()!)! var cards = Array(1...N) var queue = Queue() for i in 1...N { queue.enqueue(i) } while queue.count >= 2 { queue.dequeue() if let dequeue = queue.dequeue() { queue.enqueue(dequeue) } } print(queue.dequeue()!)..
[Swift] 백준1966
·
📝 코테/BOJ
import Foundation /// N - 테스트 케이스 개수 /// n - 문서의 개수 /// m - 현재 Queue에서 몇번째로 놓여있는지 나타내는 정수 (이 문서가 몇번째로 인쇄되었는지 찾아야함) /// /// 프린터 작동방식 /// 1. 현재 Queue의 가장 앞에 있는 문서의 '중요도' 확인 /// 2. 나머지 문서들 중 중요도가 높은 문서가 있으면 맨뒤로 보내버림 그렇지않다면 바로 인쇄 let N = Int(readLine()!)! for _ in 0..
JerryiOS
'큐' 태그의 글 목록