TIL Java
내일배움캠프 22일차 TIL _ 5주 3일차
mad038
2024. 5. 16. 22:19
- 오늘 있었던 일
- 개인과제
- 알고리즘
SPRIONG
- 스프링 정리
알고리즘 문제 풀기
● 카드 뭉치
더보기
● 카드 뭉치 //링크
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Solution {
public int[] solution(String[] keymap, String[] targets) {
int[] answer = new int[targets.length];
int cont = 0;
for(String target : targets){
for(String tar : target.split("")){
List<Integer> list = new ArrayList<>();
for (int i = 0; i < keymap.length ; i++) {
String[] key = keymap[i].split( "" );
for (int ii = 0; ii < key.length ; ii++) {
if(tar.equals(key[ii])){
list.add(ii+1);
break;
}
}
}
if(!list.isEmpty()){
answer[cont] += list.stream().min(Integer::compareTo).get();
}else{
answer[cont] = -1;
//answer = new int[]{-1};
break;
}
}
cont++;
}
return answer;
}
}
- 첫 시도때 태스트 문제는 없었지만 14번 이하로 에러가 났다.
- 문제 지문에
- 목표 문자열을 작성할 수 없을 때는 -1을 저장합니다.
- 아 전부가 아니라 인덱스 하나 구나
- 실패
-
}else{ answer = new int[]{-1}; break; }
- 성공
-
}else{ answer[cont] = -1; break; }
- 문제 지문에
- 밑은 다른 사람의 풀이
-
import java.util.*; import java.util.stream.*; class Solution { public int[] solution(String[] keymap, String[] targets) { HashMap<String, List<String>> map = new HashMap<>(); for(String key : keymap){ map.put(key, Arrays.stream(key.split("")).collect(Collectors.toList())); } int[] result = new int[targets.length]; for(int index = 0; index < targets.length; index++){ String[] split = targets[index].split(""); int totalCount = 0; for(String alphabet : split){ int count = Integer.MAX_VALUE; for(String key : map.keySet()){ if(key.contains(alphabet)){ count = Math.min(count, map.get(key).indexOf(alphabet) + 1); } } if(count == Integer.MAX_VALUE) continue; totalCount += count; } if(totalCount == 0) totalCount = -1; result[index] = totalCount; } return result; } }
- 대부분 비슷하게했다.
당일 회고
- 개인 과제 어려워.....