import Foundation

let N = Int(readLine()!)!

var deque = [Int]()

for _ in 1...N {
    let line = readLine()!
    printNum(command: line)
}

func printNum(command: String) {
    let arr = command.components(separatedBy: " ")
    switch arr[0] {
    case "push_back":
        return deque.append(Int(arr[1])!)
    case "push_front":
        if deque.isEmpty {
            deque.append(Int(arr[1])!)
        } else {
            deque.insert(Int(arr[1])!, at: 0)
        }
        return ()
    case "pop_front":
        if deque.isEmpty {
            print(-1)
        } else {
            print(deque.removeFirst())
        }
        return ()
    case "pop_back":
        if deque.isEmpty {
            print(-1)
        } else {
            print(deque.removeLast())
        }
        return ()
    case "size":
        return print(deque.count)
    case "empty":
        if deque.isEmpty {
            print(1)
        } else {
            print(0)
        }
        return ()
    case "front":
        if deque.isEmpty {
            print(-1)
        } else {
            print(deque.first!)
        }
        return ()
    case "back":
        if deque.isEmpty {
            print(-1)
        } else {
            print(deque.last!)
        }
        return ()
    default:
        break
    }
}
반응형

'📝 코테 > BOJ' 카테고리의 다른 글

[Swift] 백준1389 케빈 베이컨의 6단계 법칙  (0) 2023.03.30
[Swift] 백준 11650 좌표 정렬하기  (0) 2023.03.29
[Swift] 백준10845 큐  (0) 2023.03.28
[Swift] 백준9012 괄호  (0) 2023.03.28
[Swift] 백준7568 덩치  (0) 2023.03.28
JerryiOS