๋ฌธ์
์์
ํ์ด
- ๊ฐ ์คํ
์ด์ง๋ณ๋ก ๋จธ๋ฌด๋ ์ฌ์ฉ์์ ์๋ฅผ ๋ฐฐ์ด๋ก ํํ ( N+1 ๊น์ง ์์ ์ ์์ด์ N+2 ํฌ๊ธฐ์ ๋ฐฐ์ด ์์ฑ )
- ํด๋น ์คํ
์ด์ง์ ๋จธ๋ฌด๋ ์ฌ์ฉ์ ์ / ์คํ
์ด์ง๋ฅผ ๋์ ํ๋ ์ด ์ฌ์ฉ์์ ์๋ฅผ ๊ณ์ฐ
- ์คํ
์ด์ง์ ์คํจ์จ์ด ๋์ผ๋ฉด์ ์คํ
์ด์ง ๋ฒํธ๊ฐ ๋ฎ์ ์์ผ๋ก ์ ๋ ฌ ํ ์คํ
์ด์ง ๋ฒํธ๋ง ์ถ๋ ฅ
class Solution {
fun solution(N: Int, stages: IntArray): IntArray {
val answer = IntArray(N+2) // ์คํ
์ด์ง์ ๋จธ๋ฌด๋ ์ฌ์ฉ์๋ฅผ ๋ด๋ ๋ฐฐ์ด
stages.forEach{ answer[it]++ }
var total = stages.size
val list = mutableListOf<Pair<Int, Double>>()
for(i in 1..N){ // ์คํ
์ด์ง์ ๋จธ๋ฌด๋ ์ฌ์ฉ์ ์ / ์คํ
์ด์ง ๋์ ํ๋ ์ด ์ฌ์ฉ์ ์
list.add(Pair(i, answer.get(i) / total.toDouble()))
total -= answer.get(i)
}
// ์คํ
์ด์ง ์คํจ์จ์ด ๋์ผ๋ฉด์ ์คํ
์ด์ง ๋ฒํธ๊ฐ ๋ฎ์ ์์ผ๋ก ์ ๋ ฌ
return list.sortedWith(compareBy({-it.second}, {it.first})).map { it.first }.toIntArray()
}
}
์ฐธ๊ณ