알고리즘

프로그래머스 - 가장 가까운 같은 글자

계양 꿀주먹 2024. 4. 12. 00:30

 


 

import java.util.*;

class Solution {
    public int[] solution(String s) {
        int[] answer = new int[s.length()];
        char[] arr = s.toCharArray();
        Map<Character, Integer> map = new HashMap<>();
        
        for(int i = 0; i < arr.length; i++) {
            if(!map.containsKey(arr[i])){
                answer[i] = -1;
                map.put(arr[i], i);
            }else {
                int index = map.get(arr[i]);
                answer[i] = i - index;
                map.put(arr[i], i);
            }
        }
        
        return answer;
    }
}

 

String 을 char 배열로 변환하여, 각 글자를 key값으로 index를 value로 하여 Key값이 있는지 판별하여 없다면 처음 나온 값이기 때문에

-1 를 answer 배열에 저장하고, 아니라면 현재 인덱스에서 저장한 인덱스를 빼서 answer 배열에 저장 후 다시 현재 인덱스를 map에 저장합니다.