상세 컨텐츠

본문 제목

스택(백준)

코딩테스트

by 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

'코딩테스트' 카테고리의 다른 글

나이순 정렬(백준)  (0) 2023.07.10
마인크래프트(백준)  (0) 2023.07.08
통계학(백준)  (0) 2023.07.06
균형잡힌 세상(백준)  (0) 2023.07.05
프린터 큐(백준)  (0) 2023.07.04

관련글 더보기

댓글 영역