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_front" -> {
queue.addFirst(commands[1].toInt())
}
"push_back" -> {
queue.addLast(commands[1].toInt())
}
"pop_front" -> {
if(queue.isEmpty()){
bw.write(String.format("%d",-1))
bw.newLine()
}else{
bw.write(String.format("%d",queue.removeFirst()))
bw.newLine()
}
}
"pop_back" -> {
if(queue.isEmpty()){
bw.write(String.format("%d",-1))
bw.newLine()
}else{
bw.write(String.format("%d",queue.removeLast()))
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()가 큐랑 덱으로 사용할 수 있어서 동일하게 풀었다.
유기농 배추(백준) (0) | 2023.07.26 |
---|---|
케빈 베이컨의 6단계 법칙 (0) | 2023.07.25 |
큐(백준) (0) | 2023.07.23 |
패션왕 신해빈(백준) (0) | 2023.07.21 |
Four Squares(백준) (0) | 2023.07.20 |
댓글 영역