알고리즘

릿코드 950. Reveal Cards In Increasing Order 코틀린

rkrkrr0101 2024. 4. 11. 00:30

해당규칙에 맞춰서 뽑으면 오름차순이 되게 덱을 구성해라
그냥 해당배열크기만큼 배열만든후에,그거로 실제로 돌리고나서 해당배열대로 원래배열인덱스 수정후 리턴


정답

import java.util.LinkedList
import java.util.Queue

class Solution {
    fun deckRevealedIncreasing(deck: IntArray): IntArray {
        val queue:Queue<Int> =LinkedList()
        val indexList= mutableListOf<Int>()
        val resArray= IntArray(deck.size)
        for (i in deck.indices){
            queue.add(i)
        }
        while (queue.isNotEmpty()){
            if (queue.peek()==null){
                break
            }
            indexList.add( queue.poll())
            queue.add(queue.poll())
        }
        val sortDeckList = deck.sorted()
        for ((iIndex,iValue) in indexList.withIndex()){
            resArray[iValue]=sortDeckList[iIndex]
        }
        
        return resArray


    }


}