[분류]

  • stack

[문제링크]

[요구사항]

  • 스택을 구현하는 기초적인 문제이다.

[풀이]

  1. 스택의 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]
}



[통과여부]

image



[느낀점]

부스트캠프에서 익힌 kotlin으로 알고리즘 문제를 풀어보니 새로웠다.