본문 바로가기
Beakjoon&프로그래머스/Java

[프로그래머스/Java] 대충 만든 자판

by 현장 2025. 3. 7.

-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를 보고 힌트를 얻어서 해결했습니다.