[Kotlin/프로그래머스] 코딩테스트 연습 > 연습문제 > 가장 가까운 같은 글자

👀 문제

https://school.programmers.co.kr/learn/courses/30/lessons/142086

👊 도전

1. 설계

  1. 문제 설명대로 구현

2. 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
fun solution(s: String): IntArray {
var answer = IntArray(s.length) { 0 }

        /**
         * for문 돌면서
         * hashmap에 현재 char가 hashmap에 존재하면 그 값을 answer.add 없으면 -1
         */
        val hashMap = hashMapOf<Char, Int>()
        s.forEachIndexed { index, c ->
            if (hashMap.contains(c)) {
                answer[index] = index - (hashMap[c] ?: 0)
            } else {
                answer[index] = -1
            }
            hashMap[c] = index
        }
        return answer
    }
}

3. 결과

실행결과 🤟 성공 🤟

4. 설명

  1. HashMap에 알파벳 별 최신 인덱스를 넣고 비교한다
    • s를 순회하면서 HashMap에 동일한 문자가 있으면 그 거리를 계산하여 answer에 넣고, 없으면 -1을 넣는다.
    • hashMap에 값을 업데이트한다.

👏 해결 완료!