문제 설명

제한 사항

입출력 예

풀이
import java.util.HashMap;
class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()];
HashMap<Character, Integer> charMap = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
Character c = s.charAt(i);
if (!charMap.containsKey(c)) {
charMap.put(c, i);
answer[i] = -1;
}
else {
answer[i] = i - charMap.get(c);
charMap.put(c, i);
}
}
return answer;
}
}
후기
딱히 어려울게 없는 문제였다. 하지만 풀고 나서 다른 사람은 어떻게 풀었는지 매번 확인해보곤 하는데 여기서 Map클래스의 getOrDefault()라는 메서드를 처음 알았다. 값이 없을 경우 기본값으로 초기화하고 값이 있으면 그 값을 가져오는 것이다. 굉장히 유용하게 사용할 수 있을 것 같다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 1] 달리기 경주 (0) | 2023.07.01 |
|---|---|
| [프로그래머스][JAVA][Lv. 1] 문자열 나누기 (0) | 2023.06.30 |
| [프로그래머스][JAVA][Lv. 1] 크기가 작은 부분 문자열 (0) | 2023.06.29 |
| [프로그래머스][JAVA][Lv. 1] 카드 뭉치 (0) | 2023.06.29 |
| [프로스래머스][JAVA][Lv. 1] 대충 만든 자판 (0) | 2023.06.29 |