Deep_Dev
article thumbnail


HashMap을 이용한다.

 

문자열을 순회하면서 HashMap에 (해당 문자:인덱스)를 넣어 접근한다.
만약 HashMap에 해당 문자가 저장되지 않았으면 한 번도 나온 적이 없는 문자이므로 answer배열에 -1 저장
그리고 HashMap에 해당 문자가 있으면 value값(가장 최근 인덱스)과 현재 문자의 인덱스 값의 차이를 answer 배열에 저장

 

import java.util.*;
class Solution {
    public int[] solution(String s) {
        int[] answer = new int[s.length()];
        HashMap<Character, Integer> map = new HashMap<>();

        for(int i=0; i<s.length(); i++){
           if(!map.containsKey(s.charAt(i))){
               answer[i]=-1;
           }else {
               answer[i] = i - map.get(s.charAt(i));
           }
            map.put(s.charAt(i), i);
        }
        return answer;
    }
}