코딩테스트

요시푸스 문제 0

dofury 2023. 8. 17. 22:34
728x90

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

fun main(args: Array<String>) {

    val br = BufferedReader(InputStreamReader(System.`in`))
    val bw = BufferedWriter(OutputStreamWriter(System.out))
    val (n,k) = br.readLine().split(' ').map{it.toInt()}

    val queue = ArrayDeque<Int>()
    for(i in 1 .. n){
        queue.addLast(i)
    }
    val results = mutableListOf<Int>()
    while(!queue.isEmpty()){
        queue.addLast(queue.removeFirst())
        queue.addLast(queue.removeFirst())
        results.add(queue.removeFirst())
    }
    val result = "<$results>"

    bw.write(result.replace("[","").replace("]",""))


    bw.flush()
    bw.close()
}

문제를 이해하는게 살짝 어려웠다.

구현하는 방법은 큐를 이용해서 쉽게 하였다.

728x90