[분류]
- stack
[문제링크]
[요구사항]
- 스택을 구현하는 기초적인 문제이다.
[풀이]
- 스택의 push, pop, size, empty, top을 구현한다.
[코드]
//BOJ_10828_스택
val stack = initStack()
var top = -1
fun main(args: Array<String>) {
val sb = StringBuilder()
val n = readLine()!!.toInt()
(0 until n).forEach {
val orders = readLine()
val order = orders?.split(" ")
when (order?.get(0)) {
"push" -> {
push(order[1].toInt())
}
"pop" -> {
sb.append("${pop()}\n")
}
"size" -> {
sb.append("${size()}\n")
}
"empty" -> {
sb.append("${empty()}\n")
}
"top" -> {
sb.append("${top()}\n")
}
else -> {
// nothing
}
}
}
println(sb)
}
// function
fun initStack(): ArrayList<Int> {
return ArrayList()
}
fun push(x: Int) {
stack.add(x)
top++
}
fun pop(): Int {
if (top > -1) {
return stack.removeLast().let {
top--
it
}
}
return -1
}
fun empty(): Int {
if (top == -1) return 1
return 0
}
fun size(): Int {
return top + 1
}
fun top(): Int {
if (top == -1) return -1
return stack[top]
}
[통과여부]
[느낀점]
부스트캠프에서 익힌 kotlin으로 알고리즘 문제를 풀어보니 새로웠다.