본문 바로가기
Algorithm/문제풀이_백준

[Swift][Stack] 백준 10828번 (스택)

by Joahnee 2021. 9. 9.

요구능력 : 스택의 이해

 

코드설명 : 

 

스택은 LIFO방식으로 작동한다.

마지막에 들어간게 먼저나오는 것이다.

헬스장에서 원판꽂는게 스택이라고 보면된다.

 

그냥 배열에 append하고 popLast하는게 스택이다.

 

후기 : 여기저기서 스택에 대한 이론은 귀에 딱지가 앉도록 들었다.. 

var stack:[Int] = []
let n = Int(readLine()!)!
for _ in 1...n {
    let a = readLine()!.split(separator: " ").map{String($0)}
    switch a[0] {
    case "push":
        push(Int(a[1])!)
        break
    case "pop":
        print(pop())
        break
    case "size":
        print(size())
        break
    case "empty":
        print(empty())
        break
    case "top":
        print(top())
        break
    default:
        break
    }
}


func push(_ x: Int){
    stack.append(x)
}

func pop() -> Int{
    if let pop = stack.popLast() {
        return pop
    }else {
       return -1
    }
}

func size() ->Int{
    return stack.count
}

func empty() -> Int{
    if stack.isEmpty {
        return 1
    }else {
        return 0
    }
}

func top() -> Int{
    if let last = stack.last {
        return last
    }else {
        return -1
    }
}

댓글