SW Test/Programmers
[Programmers] Lv1. λμΆ© λ§λ μν(kotlin)
An effort will never betray π
2023. 5. 2. 23:15
λ°μν
λ¬Έμ
μμ
νμ΄
- targets μμ νλλΉ μ΅μ ν€λ₯Ό λͺ λ² λλ₯΄λμ§ μμμΌ ν©λλ€.
- λ¬Έμμ΄μ λ¬Έμ νλμ© keymapμμ μ‘°ννμ¬ κ°μ₯ indexκ° μμ κ²μ νν΄μΌ ν©λλ€.
νμ§λ§, μ΄ λ λͺ¨λ keymapμ μ°Ύκ³ μ νλ λ¬Έμκ° μμ κ²½μ°λ λ¬Έμμ΄ μ체λ₯Ό keymapμ ν΅ν΄μ λ§λ€ μ μλ€λ λ§κ³Ό κ°μ΅λλ€. - λ°λΌμ, check λ³μλ₯Ό ν΅ν΄ νλμ λ¬Έμμμ μ°Ύμ μ μμ κ²½μ°λ -1μ λ°ννλλ‘ ν΄μΌν©λλ€.
- λ¬Έμμ΄μ μ°Ύμ μ μμ λ fold μ°μ°μλ₯Ό ν΅ν΄μ (index + 1)μ λν κ°μ λ°ννλ©΄ λ©λλ€.
import kotlin.math.*
class Solution {
fun solution(keymap: Array<String>, targets: Array<String>): IntArray = targets.map{ target ->
var check = true
val sum = target.fold(0){ acc, ch ->
val minIndex = keymap.minByOrNull{
if(it.indexOf(ch) == -1) Int.MAX_VALUE
else it.indexOf(ch)
}?.indexOf(ch) ?: -1
if(minIndex == -1) check = false
acc + minIndex + 1
}
if(check) sum else -1
}.toIntArray()
}
μ°Έκ³
- ν¨μν νλ‘κ·Έλλ° μΈμ΄μΈ kotlinμ νΉμ±μ λ§κ² ν¨μλ₯Ό λ§μ΄ μ΅νμ π½
λ°μν