[JAVA 문제 풀이] 303. 대충 만든 자판

프로그래머스 (160586)
Stupefyee's avatar
Jun 05, 2025
[JAVA 문제 풀이] 303. 대충 만든 자판
notion image
 

내가 작성한 코드

import java.util.*; class Solution { public int[] solution(String[] keymap, String[] targets) { int[] answer = new int[targets.length]; Map<Character, Integer> keyMap = new HashMap<>(); // 각 문자 최소 입력 횟수 저장할 맵 // 각 문자 최소 입력 횟수 계산 for (String keys : keymap) { for (int i = 0; i < keys.length(); i++) { char key = keys.charAt(i); keyMap.put(key, Math.min(keyMap.getOrDefault(key, Integer.MAX_VALUE), i + 1)); } } // 각 target 문자열에 대해 최소 입력 횟수 계산 for (int i = 0; i < targets.length; i++) { String target = targets[i]; int sum = 0; // target 문자열의 각 문자에 대해 최소 입력 횟수 합산 for (char c : target.toCharArray()) { if (keyMap.containsKey(c)) { sum += keyMap.get(c); } else { sum = -1; // 해당 문자가 키맵에 없으면 -1 break; } } answer[i] = sum; } return answer; } }
Share article

stupefyee