050.κ°μ₯ κ°κΉμ΄ κ°μ κΈμ
/*
λ¬Έμ μ€λͺ
λ¬Έμμ΄ sκ° μ£Όμ΄μ‘μ λ, sμ κ° μμΉλ§λ€ μμ λ³΄λ€ μμ λμμΌλ©΄μ, μμ κ³Ό κ°μ₯ κ°κΉμ΄ κ³³μ μλ κ°μ κΈμκ° μ΄λ μλμ§ μκ³ μΆμ΅λλ€.
μλ₯Ό λ€μ΄, s="banana"λΌκ³ ν λ, κ° κΈμλ€μ μΌμͺ½λΆν° μ€λ₯Έμͺ½μΌλ‘ μ½μ΄ λκ°λ©΄μ λ€μκ³Ό κ°μ΄ μ§νν μ μμ΅λλ€.
bλ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
aλ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
nμ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
aλ μμ λ³΄λ€ λ μΉΈ μμ aκ° μμ΅λλ€. μ΄λ 2λ‘ ννν©λλ€.
nλ μμ λ³΄λ€ λ μΉΈ μμ nμ΄ μμ΅λλ€. μ΄λ 2λ‘ ννν©λλ€.
aλ μμ λ³΄λ€ λ μΉΈ, λ€ μΉΈ μμ aκ° μμ΅λλ€. μ΄ μ€ κ°κΉμ΄ κ²μ λ μΉΈ μμ΄κ³ , μ΄λ 2λ‘ ννν©λλ€.
λ°λΌμ μ΅μ’
κ²°κ³Όλ¬Όμ [-1, -1, -1, 2, 2, 2]κ° λ©λλ€.
λ¬Έμμ΄ sμ΄ μ£Όμ΄μ§ λ, μμ κ°μ΄ μ μλ μ°μ°μ μννλ ν¨μ solutionμ μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
1 β€ sμ κΈΈμ΄ β€ 10,000
sμ μμ΄ μλ¬Έμλ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
*/
class Solution {
fun solution(s: String): IntArray {
//λ΄ νμ΄λ°©μ.. μ€ν¨(μμλ νμμ§λ§ μ μΆλ¬Έμ μμ μ»·!)
//
// var answer: IntArray = intArrayOf()
// for((index,i) in s.withIndex()){
// if (s.indexOf(i) == index) answer = answer.plus(-1)
// else answer = answer.plus(index - s.indexOf(i, index/2))
// }
// return answer
val prevIndexMap = hashMapOf<Char, Int>()
var answer = s.mapIndexed{ index, item ->
val prevIndex = prevIndexMap[item]
prevIndexMap[item] = index
if (prevIndex == null) -1 else index - prevIndex
}.toIntArray()
return answer
}
}
λ΅ μλμμ ꡬκΈλ§ νλλ... κ°μ΄ 곡λΆνλ πͺλμ κΈ....ν μΈμμ μ²μ¬κ° λ λ§μ....π«