쥐수의 공부노트

백준 10845번 큐 본문

바킹독 알고리즘/큐

백준 10845번 큐

쥐수 2023. 6. 12. 15:29
728x90

정답 :

var array : [Int] = []
var head = 0
var tail = 0

func push(num : Int) {
    array.append(num)
    tail += 1
}
func pop() {
    if head == tail {
        print(-1)
    } else {
        print(array[head])
        head += 1
    }
}
func size() {
    print(tail - head)
}
func front() {
     print(array[head])
}
func back() {
    print(array[tail-1])
}

let n = Int(readLine()!)!

for _ in 0..<n {
    let input = readLine()!.split(separator: " ").map{String($0)}
    if input[0] == "push" {
        let num = Int(input[1])!
        push(num: num)
    }
    if input[0] == "pop" {
        pop()
    }
    if input[0] == "size" {
        size()
    }
    if input[0] == "empty" {
        if tail == head {
            print(1)
        } else {
            print(0)
        }
    }
    if input[0] == "front" {
        if head == tail {
            print(-1)
        } else {
            front()
        }
    }
    if input[0] == "back" {
        if head == tail {
            print(-1)
        } else {
            back()
        }
    }
}
더보기

TMI : 스택에서 front() 와 back()이 추가되었다.

728x90