KotlinAlgorithm#12 (POG 달리기 경주)

박채빈·2023년 7월 11일
0

KotlinAlgorithm

목록 보기
12/28
post-thumbnail

POG 달리기 경주

링크

코드

class Solution {
    fun solution(players: Array<String>, callings: Array<String>): Array<String> {
        val runnerByRank = players.mapIndexed { index, s -> index to s }.toMap().toMutableMap()
        val runnerByName = players.mapIndexed { index, s -> s to index }.toMap().toMutableMap()

        callings.forEach { winner ->
            val winnerRank = runnerByName[winner]!!
            val loserRank = winnerRank - 1
            val loser = runnerByRank[loserRank]!!

            runnerByRank[loserRank] = winner
            runnerByRank[winnerRank] = loser

            runnerByName[winner] = loserRank
            runnerByName[loser] = winnerRank
        }

        return runnerByRank.values.toTypedArray()
    }
}

시간 초과

  • Array에서 냅다 순서 바꾸면 시간 초과 발생함

    테케 통과하긴 하는데 일부 케이스에서 시간 초과 발생

profile
안드로이드 개발자

0개의 댓글