📚 코딩테스트/백준 & 프로그래머스
[프로그래머스][JAVA]Level 1 : 가장 가까운 글자
deep_lee
2023. 2. 11. 16:17
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;
}
}