-Code
import java.util.*;
class Solution {
public int[] solution(String[] keymap, String[] targets) {
int[] answer = new int[targets.length];
Map<Character, Integer> map = new HashMap<>();
for (String key : keymap) {
for (int i = 0; i < key.length(); i++) {
char ch = key.charAt(i);
int idx = map.getOrDefault(ch, 100);
map.put(ch, Math.min(idx, i + 1));
}
}
for (int i = 0; i < targets.length; i++) {
for (int j = 0; j < targets[i].length(); j++) {
char ch = targets[i].charAt(j);
if (map.containsKey(ch)) {
answer[i] += map.get(ch);
} else {
answer[i] = -1;
break;
}
}
}
return answer;
}
}
map말고 다른 방식으로 풀다가 틀려서 질문을 보고 map과 getOrDefault를 보고 힌트를 얻어서 해결했습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
[프로그래머스/Java] [PCCE 기출문제] 9번 / 이웃한 칸 (0) | 2025.03.09 |
---|---|
[프로그래머스/Java] 로또의 최고 순위와 최저 순위 (0) | 2025.03.01 |
[프로그래머스/Java] 괄호 회전하기 (0) | 2025.03.01 |
[프로그래머스/Java] N개의 최소공배수 (0) | 2025.03.01 |
[프로그래머스/Java] 영어 끝말잇기 (0) | 2025.02.28 |