πŸ’»μ½”λ“œμΉ΄νƒ€

MunkiJeonΒ·2024λ…„ 10μ›” 3일

μ½”λ”©ν…ŒμŠ€νŠΈ

λͺ©λ‘ 보기
18/18

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
    }
}

λ‹΅ μ•ˆλ‚˜μ™€μ„œ ꡬ글링 ν–ˆλ”λ‹ˆ... 같이 κ³΅λΆ€ν•˜λŠ” πŸŸͺλ‹˜μ˜ κΈ€....ν›„ 세상에 μ²œμž¬κ°€ λ„˜ λ§Žμ•„....🫠

profile
곡μž₯μžλ™ν™”μ™€ μ›Ή κ°œλ°œμ„ ν•₯μ•„ λ¨Ήλ‹€ μ•± 개발둜 μ „ν–₯ν•œ 개발자의 ν‚€λ³΄λ“œμ˜ 낑은 킀캑⛑️

0개의 λŒ“κΈ€