코드카타
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를 사용하셨다.
'CODING > 스파르타 내일배움캠프 TIL' 카테고리의 다른 글
Spring 플러스 주차 개인 과제 트러블슈팅 TIL 모음 (0) | 2025.03.11 |
---|---|
53_푸드 파이트 대회_Spring 플러스 주차 개인 과제 트러블슈팅_25.3.11(화) (0) | 2025.03.11 |
51_두 개 뽑아서 더하기_25.2.28(금) (0) | 2025.03.10 |
50_Spring 심화 주차 개인 과제 해설_25.2.27(목) (0) | 2025.02.27 |
49_K번째수 정렬_25.2.26(수) (0) | 2025.02.26 |