문제: https://school.programmers.co.kr/learn/courses/30/lessons/160586
import java.util.*;
class Solution {
public int[] solution(String[] keymap, String[] targets) {
Map<Character, Integer> m = new HashMap<>();
for(String s : keymap){
for(int i = 0; i < s.length(); i++){
// map에 없으면 넣기
if(!m.containsKey(s.charAt(i))){
m.put(s.charAt(i),i+1);
}else{
// map에 있으면 비교하고 추가하기
int n = m.get(s.charAt(i));
if( i + 1 < n ){
m.put(s.charAt(i),i+1);
}
}
}
}
// String 돌면서 클릭 횟수 구하기
int[] answer = new int[targets.length];
int idx = 0;
for(String str : targets){
int sum = 0;
boolean isValid = true;
for(int i = 0; i < str.length(); i++){
Integer num = m.get(str.charAt(i));
if(num == null){
isValid = false;
break;
}
sum += num;
}
// sum 추가하기
answer[idx] = isValid ? sum : -1 ;
idx++;
}
return answer;
}
}
Map을 어느정도 활용할 수 있는 수준에 들어온 것 같아 뿌듯하다!
참 쉽쥬잉~?