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
}
}
반응형