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
}
}
๋ฐ์ํ