class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()];
for(int i=0;i<s.length();i++){
if(i !=0){
int idx = s.substring(0,i).lastIndexOf(s.charAt(i));
if(idx != -1){
answer[i] = i-idx;
}
else{
answer[i] = idx;
}
}
else{
answer[i] = -1;
}
}
return answer;
}
}
현재 위치 i가 0이 아니라면 (첫 번째 글자가 아니라면)
s 문자열의 0부터 i-1까지의 부분 문자열에서 현재 글자 s.charAt(i)의 인덱스를 찾습니다. 이를 idx 변수에 저장합니다. (lastIndexOf 메서드를 사용하여 구합니다.)
idx가 -1이 아니라면 (이전에 나온 같은 글자가 있다면)
answer[i]에 i - idx 값을 저장합니다. (가장 가까운 같은 글자와의 거리를 계산합니다.)
idx가 -1이라면 (이전에 나온 같은 글자가 없다면)
answer[i]에 -1을 저장합니다.
i가 0인 경우 (첫 번째 글자인 경우)
answer[i]에 -1을 저장합니다.