[백준] 카드1 (2161)(kotlin)

문제 설명

백준 2161번 문제 링크

입력 및 출력

» 입력

첫째 줄에 정수 N(1≤N≤1,000)이 주어진다.

» 출력

첫째 줄에 버리는 카드들을 순서대로 출력한다. 제일 마지막에는 남게 되는 카드의 번호를 출력한다.

예제 입출력(테스트케이스)

입력 출력
7 1 3 5 7 4 2 6

문제 풀이1

import java.util.LinkedList

fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    val queue = LinkedList<Int>()
    val list = mutableListOf<Int>()

    repeat(readLine().toInt()) {
        queue.add(it + 1)
    }

    while (queue.size != 1) {
        list.add(queue.pop())
        queue.addLast(queue.pop())
    }

    list.add(queue.pop())
    print(list.joinToString(" "))
}