https://school.programmers.co.kr/learn/courses/30/lessons/142086
String 문제
list사용
import java.util.ArrayList;
class Solution {
public int[] solution(String s) {
ArrayList<Character> list = new ArrayList<>();
int[] answer = new int[s.length()];
int tmp = 0;
for(int i = 0; i < s.length(); i++){
if(list.contains(s.charAt(i))) {
tmp = list.indexOf(s.charAt(i));
answer[i] = i - tmp;
list.set(tmp, 'A');
} else {
answer[i] = -1;
}
list.add(s.charAt(i));
}
return 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++){
char ch = s.charAt(i);
answer[i] = i-map.getOrDefault(ch,i+1);
map.put(ch,i);
}
return answer;
}
}
맵을 생각하긴 했는데 put메소드로 같은 key를 넣고 값을 바꾸면 계속 변한다는것이 생각이 안났다.