상세 컨텐츠

본문 제목

덱(백준)

코딩테스트

by dofury 2023. 7. 24. 12:59

본문

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_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()가 큐랑 덱으로 사용할 수 있어서 동일하게 풀었다.

728x90

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

유기농 배추(백준)  (0) 2023.07.26
케빈 베이컨의 6단계 법칙  (0) 2023.07.25
큐(백준)  (0) 2023.07.23
패션왕 신해빈(백준)  (0) 2023.07.21
Four Squares(백준)  (0) 2023.07.20

관련글 더보기

댓글 영역