코딩테스트

스택(백준)

dofury 2023. 7. 7. 17:36
728x90

package com.example.algorithm

import java.io.BufferedReader
import java.io.InputStreamReader
import java.math.BigDecimal
import java.math.RoundingMode
import java.util.*
import java.util.Collections.max
import java.util.Collections.min


fun main(){

    val count = readLine()!!.toInt() //명령어 수

    val br = BufferedReader(InputStreamReader(System.`in`))
    val stack :Stack<Int> = Stack()
    repeat(count){
        val command = br.readLine().split(' ')

        when(command[0]){
            "push" -> {
                stack.push(command[1].toInt())
            }
            "pop" -> {
                if(stack.empty()){
                    println(-1)
                }else{
                    println(stack.pop())
                }
            }
            "size" -> {
                println(stack.size)
            }
            "empty" -> {
                if(stack.empty()){
                    println(1)
                }else{
                    println(0)
                }
            }
            "top" -> {
                if(stack.empty()){
                    println(-1)
                }else{
                    println(stack.peek())
                }
            }
        }

    }
}

스택을 그대로 사용하는 문제라 입력을 받아서 스택의 함수를 이용했다.

허나 입출력을 많이 받아서 기존 코틀린의 readline()으로는 시간초과가 났다.

그래서 자바에 있는 bufferedReader를 사용해서 더 빨리 입력 받으니 해결할 수 있었다.

자바 코드를 사용할 수 있는 점이 코틀린의 장점이라고 생각할 수 있는 경험이였던 것 같다. 

728x90