CODING/스파르타 내일배움캠프 TIL
52_가장 가까운 같은 글자_25.3.10(월)
codingTrip
2025. 3. 10. 21:07
코드카타
50) 가장 가까운 같은 글자
나의 풀이
class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()];
answer[0] = -1;
for (int i = 1; i < s.length(); i++) {
for (int j = i-1; j >= 0; j--) {
if (s.charAt(i) == s.charAt(j)) {
answer[i] = i - j;
break;
} else {
answer[i] = -1;
}
}
}
return answer;
}
}
for문을 2개 만들었다...
사실 이 방법이 내키지는 않았지만 그 이상의 생각이 어려웠다.
다른 분들의 풀이
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;
}
}
map에서 getOrDefault를 사용하셨다.