Algorithm/Baekjoon

[백준] (Swift) 10828번 - 스택(stack)

감자 🥔 2022. 1. 16. 15:59
반응형

문제 링크

https://www.acmicpc.net/problem/10828

반응형
 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

 
 
 

내가 푼 풀이

일반적인 스택의 개념을 확인하는 문제다. 함수로 각 기능을 구현하였고, switch case문을 활용하였다.

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])!)
        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 popValue = stack.popLast() {
        return popValue
    } 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
    }
}

 

반응형