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를 사용하여 구현하였다.
허나 시간 초과가 발생하여 자바에 있는 빠른 입출력을 사용하였다.
케빈 베이컨의 6단계 법칙 (0) | 2023.07.25 |
---|---|
덱(백준) (0) | 2023.07.24 |
패션왕 신해빈(백준) (0) | 2023.07.21 |
Four Squares(백준) (0) | 2023.07.20 |
ATM(백준) (0) | 2023.07.20 |
댓글 영역