상세 컨텐츠

본문 제목

큐(백준)

코딩테스트

by dofury 2023. 7. 23. 22:01

본문

728x90

package com.dofury.kotlin

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter


fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val bw = BufferedWriter(OutputStreamWriter(System.`out`))
    val count = br.readLine()!!.toInt()
    val queue: ArrayDeque<Int> = ArrayDeque()
    repeat(count){
        val commands = br.readLine()!!.split(' ')
        when(commands[0]){
            "push" -> {
                queue.add(commands[1].toInt())
            }
            "pop" -> {
                if(queue.isEmpty()){
                    bw.write(String.format("%d",-1))
                    bw.newLine()
                }else{
                    bw.write(String.format("%d",queue.removeFirst()))
                    bw.newLine()
                }

            }
            "size" -> {
                bw.write(String.format("%d",queue.size))
                bw.newLine()
            }
            "empty" -> {
                if(queue.isEmpty()){
                    bw.write(String.format("%d",1))
                    bw.newLine()
                }else{
                    bw.write(String.format("%d",0))
                    bw.newLine()
                }
            }
            "front" -> {
                if(queue.isEmpty()){
                    bw.write(String.format("%d",-1))
                    bw.newLine()
                }else{
                    bw.write(String.format("%d",queue.first()))
                    bw.newLine()
                }
            }
            "back" -> {
                if(queue.isEmpty()){
                    bw.write(String.format("%d",-1))
                    bw.newLine()
                }else{
                    bw.write(String.format("%d",queue.last()))
                    bw.newLine()
                }
            }
        }
    }
    bw.flush()
    bw.close()
    br.close()
}

문제 자체는 코틀린에서 지원하는 ArrayDeque를 사용하여 구현하였다.

허나 시간 초과가 발생하여 자바에 있는 빠른 입출력을 사용하였다.

728x90

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

케빈 베이컨의 6단계 법칙  (0) 2023.07.25
덱(백준)  (0) 2023.07.24
패션왕 신해빈(백준)  (0) 2023.07.21
Four Squares(백준)  (0) 2023.07.20
ATM(백준)  (0) 2023.07.20

관련글 더보기

댓글 영역