티스토리 뷰

Algorithm/백준

[BOJ] (Swift) 10828 - 스택

Ekko0701 2022. 7. 28. 17:28
 

10828번: 스택

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

www.acmicpc.net


 

배열을 만든 후 push, pop, count, isEmpty, last 메서드를 이용해 스택의 기능을 구현 후 switch case 사용해 완성

//
//  main.swift
//  Algorithm Swift
//  BackJoon
//  10826 - 스택

import Foundation

let N = Int(readLine()!)!
var stack: [Int] = []

for _ in 0...(N-1) {
    let input = readLine()!.split(separator: " ").map{ String($0) }
    switch input[0] {
    case "push":
        push(Int(input[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
    }
}

 

'Algorithm > 백준' 카테고리의 다른 글

[BOJ] (Swift) 10845 - 큐  (0) 2022.08.01
[BOJ] (Swift) 1406 - 에디터  (0) 2022.08.01
[BOJ] (Swift) 1874 - 스택 수열  (0) 2022.07.31
[BOJ] (Swift) 9012 - 괄호  (0) 2022.07.28
[BOJ] (Swift) 9093 - 단어 뒤집기  (0) 2022.07.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함