알고리즘

Queue 10845 - swift

2료일 2023. 9. 5. 02:28

큐 구현이다. swift로는 큐를 어떻게 구현하는지를 물어보는 거였다. 

//
//  main.swift
//  Queue
//
//  Created by 235 on 2023/09/05.
//

import Foundation

struct Queue{
    var queue: [Int] = []
    public var size: Int {
        return queue.count
    }
    public var isEmpty: Bool {
        return queue.isEmpty
    }
    public var front: Int {
        return isEmpty ? -1 : queue[0]
    }
    public var back: Int {
        guard let last = queue.last else {return -1}
        return last
    }
    mutating func push(X: Int) {
        queue.append(X)
    }
    mutating func pop() -> Int {
        return isEmpty ? -1 : queue.removeFirst()
    }
}
let missionCount = Int(readLine()!)!
var queue = Queue()
for _ in 0..<missionCount {
    var mission = readLine()!.split(separator: " ")
    switch mission[0] {
    case "push":
        queue.push(X: Int(mission[1])!)
    case "pop":
        print(queue.pop())
    case "size":
        print(queue.size)
    case "empty":
        print(queue.isEmpty ? "1" : "0")
    case "front":
        print(queue.front)
    case "back":
        print(queue.back)
    default:
        break
    }
}

python과 달리 swift에서는 큐가 따로 없기에 내가 struct로 구현을 해주었다.