👀 문제
https://school.programmers.co.kr/learn/courses/30/lessons/142086
👊 도전
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. 설명
- HashMap에 알파벳 별 최신 인덱스를 넣고 비교한다
- s를 순회하면서 HashMap에 동일한 문자가 있으면 그 거리를 계산하여 answer에 넣고, 없으면 -1을 넣는다.
- hashMap에 값을 업데이트한다.