Stack은 (LIFO) 즉 Push와 pop을 이용한 자료구조입니다!!!
Swift에서 역시 Push와 pop Method를 제공해주기 때문에 쉽게 구현할수 있습니다. 구조만 잘 파악하시면 쉽게 구현하실수 있어요!!
//MARK: - Stack 자료구조 구현
struct Stack {
var stack: [Int] = []
mutating func push(x: Int) { // Push Method
stack.append(x)
}
mutating func pop() { // POP Method
if stack.isEmpty {
print("-1")
} else {
print("\(stack.popLast()!)")
}
}
mutating func size() { // Size Method
print(stack.count)
}
mutating func empty() { // empty Method
if stack.isEmpty {
print("1")
} else {
print("0")
}
}
mutating func top() { // top Method
if stack.isEmpty {
print("-1")
} else {
print("\(stack[stack.endIndex - 1])")
}
}
}
var N = Int(readLine()!)!
var jennyStack = Stack()
for i in 0...N - 1 {
var call = readLine()!.split(separator: " ").map{$0}
if call[0] == "push" {
jennyStack.push(x: Int(call[1])!)
} else if call[0] == "pop" {
jennyStack.pop()
} else if call[0] == "size" {
jennyStack.size()
} else if call[0] == "empty" {
jennyStack.empty()
} else if call[0] == "top" {
jennyStack.top()
}
}