import java.util.Map;
import java.util.HashMap;
class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()];
Map<String, Integer> map = new HashMap<>();
String[] arr = s.split("");
for(int i=0; i<arr.length; i++){
if(map.get(arr[i]) == null){
answer[i] = -1;
} else answer[i] = i - map.get(arr[i]);
map.put(arr[i], i);
}
return answer;
}
}
import java.util.HashMap;
import java.util.Map;
class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()];
Map<String, Integer> map = new HashMap<>();
String[] arr = s.split("");
for(int i=0; i<arr.length; i++){
answer[i] = i - map.getOrDefault(arr[i], i + 1);
map.put(arr[i], i);
}
return answer;
}
}
풀이2
for문에서 if문을 사용하지 않고 getOrDefault 를 이용하여 값을 갱신했다.
정확도 테스트에서 생각보다 시간은 비교적 높게 나왔다.
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스/자바] 피자 나눠 먹기 (3) (0) | 2023.03.28 |
---|---|
[프로그래머스/자바] 문자열 내 마음대로 정렬하기 (0) | 2023.03.15 |
[프로그래머스/자바] 신고 결과 받기 (0) | 2023.03.14 |
[프로그래머스/자바] [1차] 비밀지도 (0) | 2023.03.14 |
[프로그래머스/자바] 완주하지 못한 선수 (0) | 2023.03.13 |