ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준][Kotlin]2164번 카드2
    백준 2023. 2. 26. 01:22
    728x90

    해당 문제는 간단히 큐를 알고 있다면 간단히 풀 수 있는 문제였습니다.

    문제 설명을 보면 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 라고 되어 있는데 해당 기능은 큐의 

    removeFirst() 와 pollFirst() 를 사용하여 간단히 구현이 가능합니다.

     

    하기는 작성한 코드와 채점 결과 입니다.

    import java.io.BufferedReader
    import java.io.BufferedWriter
    import java.io.InputStreamReader
    import java.io.OutputStreamWriter
    import java.util.*
    
    fun main() {
    //    val s = System.currentTimeMillis()
        var br = BufferedReader(InputStreamReader(System.`in`))
        var bw = BufferedWriter(OutputStreamWriter(System.out))
        var st = StringTokenizer(br.readLine())
        val N = st.nextToken().toInt() // 자료의 개수
        //var sb = StringBuilder()
        var dq = ArrayDeque<Int>()
    
        repeat(N){
            dq.addLast(it+1)
        }
    
        while(dq.size != 1){
            dq.removeFirst()
            dq.addLast(dq.pollFirst())
        }
        bw.append("${dq.peekFirst()}")
        bw.flush()
        bw.close()
    
    //   val e = System.currentTimeMillis()
    //   println((e-s)/1000.0)
    
    }

Designed by Tistory.