알고리즘
프로그래머스 - 가장 가까운 같은 글자
계양 꿀주먹
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에 저장합니다.